Перейти к основному содержимому

Типизация

Типизация - обязательный механизм, обеспечивающий предсказуемость, безопасность рефакторинга и согласованность с API. Типы используются как контракт, а не как "подсказка для редактора". Корректная типизация делает невалидные состояния невыразимыми.

Цели

  • Описание реальных данных, а не "желаемого поведения".
  • Синхронизация с API.
  • Предотвращение расхождений между ожидаемыми и фактическими структурами данных.
  • Упрощение навигации и понимания предметной области проекта.

Общие принципы

MUST

  1. TypeScript в strict mode — обязательное требование для всех проектов.
  2. Runtime-валидация границ доверия — любые внешние данные (API, localStorage и т.д.) должны проверяться (Zod, ArkType, Valibot).
  3. Запрет на any — использование any запрещено, unknown допустим только с последующей проверкой.
  4. Синхронизация с API — использование генерации DTO (OpenAPI, GraphQL) там, где это возможно.

SHOULD

  • Использование Branded Types для структурно идентичных примитивов.
  • Строгое разделение DTO и UI-типов.

Разделы документации