Builder Pattern Type

TypeScript 🔴 Senior

Définition

Implémentation du Builder pattern avec un typage qui évolue a chaque étape. Chaque méthode retourne un type plus précis, garantissant la completude a la compilation.

Analogie

Comme un formulaire multi-étapes ou chaque page deverrouille la suivante — pas de raccourci possible.

Exemple de code

class QueryBuilder<T extends object = {}> {
  select<K extends string>(col: K) {
    return this as QueryBuilder<T & Record<K, true>>;
  }
  build(): T { return {} as T; }
}
new QueryBuilder().select("name").select("age").build();

Cas d'usage

APIs fluides (query builders, form builders) ou l'ordre et la completude des appels sont critiques.

Anti-pattern

Builder sans typage progressif — rien n'empêche d'appeler build() avant d'avoir configure les champs requis.
#advanced#pattern

← → au clavier pour passer d'une fiche à l'autre