Recursive Conditional Types

TypeScript 🔴 Senior

Definition

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.

Termes lies

#advanced#type-system