0Pricing
TypeScript Academy · Урок

Проверка типов в 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 — локальная установка не требуется.

Все уроки этого курса

  1. Профилирование медленной компиляции TypeScript
  2. Избегание затратных операций над типами
  3. skipLibCheck и изолированные объявления
  4. Проверка типов в CI: стратегии и инструменты
← Назад к TypeScript Academy