Builder Pattern Type
TypeScript 🔴 SeniorDefinition
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.