Type Narrowing
TypeScript 🟢 JuniorDefinition
Processus de reduction d'un type large vers un type plus specifique via des conditions. TS analyse le flux de controle pour affiner les types.
Analogie
Comme un entonnoir qui filtre progressivement — on part d'un grand ensemble pour arriver a un element precis.
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 securite dans les branches conditionnelles.
Anti-pattern
Utiliser des cast (as) au lieu de narrowing propre — on perd la verification du compilateur.