Conditional Types (infer)

TypeScript 🔴 Senior

Definition

Types qui selectionnent un type selon une condition (T extends U ? X : Y). Le mot-cle infer permet d'extraire des sous-types dans la branche true.

Analogie

Comme un aiguillage ferroviaire — selon le type de train, il est dirige sur une voie ou une autre.

Exemple de code

type Unwrap<T> = T extends Promise<infer U> ? U : T;
type A = Unwrap<Promise<string>>; // string
type B = Unwrap<number>;          // number

Cas d'usage

Extraire des types imbriques (retour de Promise, elements de tableau, props de composants React).

Anti-pattern

Imbriquer trop de conditional types — le code devient illisible et les erreurs cryptiques.
#advanced#interview#type-system