Type Narrowing

TypeScript 🟢 Junior

Dé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

Utiliser des cast (as) au lieu de narrowing propre — on perd la vérification du compilateur.
#core#interview#type-system

En entretien

  1. 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.

  2. 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.

  3. 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

← → au clavier pour passer d'une fiche à l'autre