Типизация
Типизация - обязательный механизм, обеспечивающий предсказуемость, безопасность рефакторинга и согласо ванность с API. Типы используются как контракт, а не как "подсказка для редактора". Корректная типизация делает невалидные состояния невыразимыми.
Цели
- Описание реальных данных, а не "желаемого поведения".
- Синхронизация с API.
- Предотвращение расхождений между ожидаемыми и фактическими структурами данных.
- Упрощение навигации и понимания предметной области проекта.
Общие принципы
MUST
- TypeScript в strict mode — обязательное требование для всех проектов.
- Runtime-валидация границ доверия — любые внешние данные (API, localStorage и т.д.) должны проверяться (Zod, ArkType, Valibot).
- Запрет на
any— использованиеanyзапрещено,unknownдопустим только с последующей проверко й. - Синхронизация с API — использование генерации DTO (OpenAPI, GraphQL) там, где это возможно.
SHOULD
- Использование Branded Types для структурно идентичных примитивов.
- Строгое разделение DTO и UI-типов.
Разделы документации
- Требования к типизации — Подробные правила использования TypeScript, генерация DTO, runtime-валидация и маппинг.
- Контроль и автоматизация — Правила Code Review, инструменты автоматизации и чеклист разработчика.