Digest du jour

lundi 3 août 2026

Profondeur

Digest court

Journée sans release : le blog Angular n'a rien publié depuis le 17 juillet et le dernier tag stable reste la ligne 22.1.x, avec un 22.2.0-next en cours d'intégration. L'actualité utile est donc côté API, pas côté version : Signal Forms a discrètement uniformisé ses règles conditionnelles autour d'une option when, ce qui change la signature de hidden, disabled et readonly par rapport aux exemples v21 encore visibles dans la doc de référence. En parallèle, injectAsync et son option prefetch méritent un vrai passage en revue : c'est le premier mécanisme de lazy loading côté injecteur, pas côté route. Les deux sujets touchent du code que tu écris tous les jours dans un back-office. On les traite en mini-cours plutôt que d'attendre une release.

Top 1 — Signal Forms : les règles conditionnelles se normalisent

  • hidden(path, { when }) : la condition passe désormais par un objet d'options, aligné sur disabled et readonly.
  • Champ caché ≠ champ absent : un champ hidden ne contribue plus à la validation ni à l'état touched/dirty du parent, mais reste dans le modèle.
  • Pas d'attribut DOM : [formField] n'applique aucun hidden sur l'élément — tu gardes la responsabilité du @if dans le template.
  • disabled renvoie une raison : la lambda peut retourner une chaîne explicative au lieu de true, exploitable dans l'UI.

Top 2 — Injection paresseuse : injectAsync et onIdle

  • injectAsync(() => import(...)) : le bundle du service n'est chargé qu'au premier appel effectif.
  • { prefetch: onIdle } : Angular précharge le bundle dès que le navigateur est inactif, via requestIdleCallback.
  • Contrainte : le service injecté doit être auto-provisionné (@Service() ou providedIn: 'root').

Rien de neuf non plus côté écosystème build : Rolldown reste le bundler stable annoncé avec 22.1, et TypeScript 6 la baseline depuis 21.2.

→ Analyse complète : 2026-08-03_detail.md