Type Widening

TypeScript 🟡 Mid

Définition

Mécanisme ou TS élargit automatiquement un type littéral vers un type plus général. Une variable let initialisée a "hello" devient string, pas "hello".

Analogie

Comme un cadre photo extensible qui s'adapte a toutes les tailles au lieu de rester fixe sur une seule dimension.

Exemple de code

let x = "hello"; // type: string (widened)
const y = "hello"; // type: "hello" (literal)
let z: "hello" = "hello"; // type: "hello" (explicite)

Cas d'usage

Comprendre le widening pour éviter les erreurs avec les types littéraux dans les fonctions.

Anti-pattern

Utiliser let partout et perdre les types littéraux nécessaires pour les discriminated unions.
#core#interview#type-system

En entretien

  1. Explique-moi le type widening.

    C'est le mécanisme où TypeScript élargit automatiquement un type littéral vers un type plus général : une variable let initialisée à "hello" devient string, pas le littéral "hello". Ça évite des erreurs si la variable est réassignée avec une autre valeur du même type général.

  2. Quel piège rencontre-t-on avec des discriminated unions et let ?

    Utiliser let partout fait perdre les types littéraux nécessaires pour discriminer les branches d'une union, alors qu'une const ou une annotation explicite les préserve. Il faut alors soit typer explicitement, soit utiliser const ou as const.

Fiche mise à jour le 2026-09-27

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