Type Narrowing
TypeScript 🟢 JuniorDéfinition
Processus de réduction d'un type large vers un type plus spécifique via des conditions. TS analyse le flux de contrôle pour affiner les types.
Analogie
Comme un entonnoir qui filtre progressivement — on part d'un grand ensemble pour arriver a un élément précis.
Exemple de code
function show(val: string | number) {
if (typeof val === "string") {
console.log(val.toUpperCase()); // string
} else {
console.log(val.toFixed(2)); // number
}
}
Cas d'usage
Manipuler des union types en toute sécurité dans les branches conditionnelles.
Anti-pattern
Termes liés
En entretien
Explique-moi ce qu'est le type narrowing.
C'est le processus qui réduit un type large vers un type plus spécifique via des conditions, TypeScript analysant le flux de contrôle pour affiner les types.
Pourquoi éviter d'utiliser `as` au lieu d'un vrai narrowing ?
Un cast fait perdre la vérification du compilateur, alors qu'un narrowing propre comme `typeof val === "string"` garantit que le type est correct.
Dans quel contexte utilise-t-on le narrowing ?
Pour manipuler des union types en toute sécurité dans les branches conditionnelles, par exemple sur un paramètre `string | number`.
Fiche mise à jour le 2026-09-27