Distributive Conditional Types
TypeScript 🔴 SeniorDefinition
Quand un type conditionnel agit sur un parametre generique nu (T extends U), il se distribue sur chaque membre d'une union. Chaque membre est evalue independamment.
Analogie
Comme un tri postal — chaque lettre de la pile est examinees individuellement et envoyee 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 independamment (Exclude, Extract fonctionnent ainsi).
Anti-pattern
Ne pas comprendre la distribution et obtenir des resultats inattendus — utiliser [T] extends [U] pour la desactiver.