Distributive Conditional Types
TypeScript 🔴 SeniorDéfinition
Quand un type conditionnel agit sur un paramètre générique nu (T extends U), il se distribue sur chaque membre d'une union. Chaque membre est évalué indépendamment.
Analogie
Comme un tri postal — chaque lettre de la pile est examinées individuellement et envoyée dans la bonne boite.
Exemple de code
type NoNull<T> = T extends null | undefined ? never : T;
type R = NoNull<string | null | number>;
// string | number (null elimine)
Cas d'usage
Filtrer ou transformer chaque membre d'une union indépendamment (Exclude, Extract fonctionnent ainsi).
Anti-pattern
Ne pas comprendre la distribution et obtenir des résultats inattendus — utiliser [T] extends [U] pour la désactiver.