Type Narrowing

TypeScript 🟢 Junior

Definition

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.
#core#interview#type-system