Проверка типов в CI: стратегии и инструменты
Эффективно запускайте проверку типов в конвейерах непрерывной интеграции
«Проверка типов в CI: стратегии и инструменты» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.
Зачем проверять типы в CI
Запуск проверки типов TypeScript в CI выявляет ошибки типов, которые разработчики пропускают локально, особенно в больших командах, где изменения в одном пакете нарушают работу другого.
# Simple CI type check step
npx tsc --noEmitОпция --noEmit
tsc --noEmit запускает полную проверку типов, но пропускает вывод JavaScript — это идеально подходит для проверки типов в CI без создания файлов.
# GitHub Actions step
- name: Type Check
run: npx tsc --noEmitИнкрементальная проверка типов в CI
Используйте --incremental вместе с кэшированием в CI, чтобы восстановить файл .tsbuildinfo и повторно проверять только изменившиеся файлы.
# Cache .tsbuildinfo in CI (GitHub Actions)
- uses: actions/cache@v3
with:
path: .tsbuildinfo
key: tsc-${{ hashFiles('src/**/*.ts') }}Ссылки на проекты в CI
В монорепозитории команда tsc --build --noEmit проверяет типы всех пакетов с учетом зависимостей между ссылками на проекты.
# Type-check all project references
npx tsc --build --noEmitПроверка только затронутых типов с Nx
Nx может определить, какие пакеты затронуты PR, и проверить типы только в них, пропустив неизменившиеся пакеты.
# Only type-check affected projects
npx nx affected --target=typecheck --base=origin/mainПроверка типов с Turborepo
Добавьте скрипт typecheck в каждый пакет и запускайте его через Turborepo с кэшированием и распараллеливанием.
// package.json
{ "scripts": { "typecheck": "tsc --noEmit" } }
// turbo.json pipeline
{ "typecheck": { "dependsOn": ["^typecheck"], "outputs": [] } }
// Run:
npx turbo typecheckРаспараллеливание проверки типов
Для независимых пакетов запускайте проверку типов параллельно с помощью таких инструментов, как concurrently или npm-run-all.
npx concurrently \
"tsc -p packages/core/tsconfig.json --noEmit" \
"tsc -p packages/ui/tsconfig.json --noEmit"Остановка CI при ошибках типов
Убедитесь, что CI завершается с ошибкой при любой ошибке TypeScript, проверяя код завершения. tsc --noEmit завершается с кодом 1, если обнаружены ошибки.
# CI step — fails if tsc exits 1
- name: Type Check
run: npx tsc --noEmit
# No continue-on-error: true hereПроверка типов только в запросах на слияние
Используйте GitHub Actions, чтобы проверять типы только в измененных файлах запроса на слияние и сокращать время CI для крупных репозиториев.
# Use ts-affected or custom script to detect changed TS files
# Then run tsc only for affected tsconfig projectsОтчет об ошибках типов в комментариях к запросу на слияние
Такие инструменты, как danger-js, могут разобрать вывод tsc и опубликовать ошибки типов как встроенные комментарии к проверке запроса на слияние, чтобы их было легче заметить.
// dangerfile.ts
import { danger, fail } from "danger";
// Parse tsc --noEmit output and report errors inlineПовторение: проверка типов в CI
Запускайте tsc --noEmit в CI для проверки корректности. Для ускорения используйте --incremental и кэш. В монорепозиториях применяйте tsc --build, Turborepo или анализ затронутых элементов в Nx, чтобы минимизировать работу для каждого запроса на слияние.
Быстрая проверка
Какая опция tsc выполняет проверку типов без создания файлов вывода?
Что вы узнали
Проверка типов в CI использует tsc --noEmit для проверки корректности без создания файлов. Объедините ее с --incremental, ссылками на проекты и инструментами кэширования (Turborepo, Nx), чтобы обеспечить быструю и масштабируемую проверку типов в крупных монорепозиториях.
Часто задаваемые вопросы
Урок «Проверка типов в CI: стратегии и инструменты» бесплатный?
Да — полный текст урока «Проверка типов в CI: стратегии и инструменты» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.
Чему я научусь в уроке «Проверка типов в CI: стратегии и инструменты»?
Эффективно запускайте проверку типов в конвейерах непрерывной интеграции Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать TypeScript Academy?
Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Проверка типов в CI: стратегии и инструменты»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке TypeScript Academy?
Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Профилирование медленной компиляции TypeScript
- Избегание затратных операций над типами
- skipLibCheck и изолированные объявления
- Проверка типов в CI: стратегии и инструменты