Builder Pattern Type

TypeScript 🔴 Senior

Definition

Implementation du Builder pattern avec un typage qui evolue a chaque etape. Chaque methode retourne un type plus precis, garantissant la completude a la compilation.

Analogie

Comme un formulaire multi-etapes 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'empeche d'appeler build() avant d'avoir configure les champs requis.

Termes lies

#advanced#pattern