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.