55 / 58
Как типизировать builder с обязательными шагами (step builder)?
Step Builder -- паттерн, при котором TypeScript не даёт вызвать build(), пока не пройдены все обязательные шаги. Реализуется через цепочку интерфейсов: каждый шаг возвращает новый тип с доступными на этом этапе методами. Метод build() доступен только в финальном типе, куда попадаешь после всех обязательных шагов.