foundation

Проверка типов

Запускайте проверку TypeScript отдельным CI gate, чтобы быстрые transpile не скрывали ошибки контрактов.

Typecheck — семантический gate. Многие инструменты сборки быстро transpile TypeScript без проверки контрактов, поэтому в CI нужно явно запускать `tsc --noEmit`, `vue-tsc` или type checker фреймворка.

					{
  "scripts": {
    "build": "vite build",
    "typecheck": "tsc -p tsconfig.json --noEmit"
  }
}
				

Vite, SWC, esbuild и Babel могут собрать бандл при оставшихся ошибках типов. В монорепо project references и инкрементальные сборки помогают масштабировать typecheck, не скрывая ошибки в сгенерированных `.d.ts`.

На интервью: почему transpile-only сборки проходят с ошибками TypeScript, разделение `build` и `typecheck`, project references в больших репозиториях.

Типовые ошибки: пропуск typecheck, потому что «бандл собрался», переносит ошибки контрактов в runtime или к потребителям пакетов; устаревшие generated declarations вводят зависимые пакеты в заблуждение.

Компромисс — скорость пайплайна против раннего обнаружения ошибок API и контрактов до merge.

Чеклист:

  • Семантический typecheck в CI.
  • Проверка declarations для публикуемых пакетов.
  • Инкрементальные сборки или project references на масштабе.
  • Быстрые transpiler не заменяют type checker.