Conditional Types (infer)
TypeScript 🔴 SeniorDefinition
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.