Как моделировать доменные инварианты в TypeScript?
Коротко
Типы помогают выразить допустимые состояния, но критичные инварианты должны проверяться в runtime/domain layer.
Типы помогают выразить допустимые состояния, но критичные инварианты должны проверяться в runtime/domain layer.
Сильный ответ должен раскрыть: impossible states; branded types; runtime checks; domain ownership.
Важно не допустить типичные ошибки: переносить все правила в types; доверять casts; не учитывать данные из БД/API.
Что хочет услышать интервьюер
impossible states
branded types
runtime checks
domain ownership
Пример: TypeScript example
type PaidOrder = Order & { status: 'paid'; paidAt: Date };
Типичные ошибки
переносить все правила в types
доверять casts
не учитывать данные из БД/API


