Recursive Conditional Types
TypeScript 🔴 SeniorDefinition
Types conditionnels qui se referencent eux-memes pour traiter des structures de profondeur variable. Permettent des transformations profondes sur les types.
Analogie
Comme une equipe de nettoyage qui descend etage par etage dans un immeuble — chaque niveau est traite avant de passer au suivant.
Exemple de code
type DeepReadonly<T> = T extends object
? { readonly [K in keyof T]: DeepReadonly<T[K]> }
: T;
type Nested = { a: { b: { c: string } } };
type R = DeepReadonly<Nested>;
Cas d'usage
Creer des transformations profondes (DeepPartial, DeepReadonly, flatten) sur des structures imbriquees.
Anti-pattern
Recursion trop profonde sans limite — TS a une profondeur max (~50) et genere des erreurs cryptiques.