Exhaustive Check (never)
TypeScript 🟡 MidDéfinition
Technique utilisant le type never pour garantir que tous les cas d'une union sont traites. Si un cas est oublie, le compilateur génère une erreur.
Analogie
Comme une checklist de sécurité en aviation — chaque point doit être coche, aucun oubli n'est toléré.
Exemple de code
type Shape = "circle" | "square";
function area(s: Shape) {
switch (s) {
case "circle": return 1;
case "square": return 2;
default: const _: never = s; return _;
}
}
Cas d'usage
Garantir a la compilation que tout ajout a une union est géré partout dans le code.
Anti-pattern
Termes liés
En entretien
Explique-moi le pattern exhaustive check avec never.
Il assigne la valeur restante à une variable de type never dans le cas par défaut d'un switch, ce qui garantit que tous les cas d'une union sont traités sinon le compilateur génère une erreur.
Quel est l'anti-pattern à éviter avec ce pattern ?
Mettre un default générique qui ignore les nouveaux cas au lieu d'assigner à never, ce qui laisse les bugs passer silencieusement quand l'union s'agrandit.
Pourquoi ce pattern est-il utile en équipe ?
Il garantit à la compilation que tout ajout à une union est géré partout dans le code, ce qui évite les oublis lors de son évolution.
Fiche mise à jour le 2026-09-27