0Pricing
TypeScript Academy · レッスン

CIでの型チェック:戦略とツール

継続的インテグレーションのパイプラインで型チェックを効率的に実行します。

「CIでの型チェック:戦略とツール」はCoddyKit上の無料TypeScript Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはTypeScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 TypeScript Academyコースには全4レッスンが含まれています。

CIで型チェックを行う理由

CIでTypeScriptの型チェックを実行すると、開発者がローカルで見逃した型エラーを検出できます。特に大規模なチームでは、あるパッケージへの変更が別のパッケージを壊すことがあります。

# Simple CI type check step
npx tsc --noEmit

--noEmitフラグ

tsc --noEmitは完全な型チェッカーを実行しますが、JavaScriptの出力はスキップします。ファイルを生成せずにCIで型チェックを行うのに最適です。

# GitHub Actions step
- name: Type Check
  run: npx tsc --noEmit

CIでの増分型チェック

CIのキャッシュとともに--incrementalを使用して.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を失敗させる

終了コードを確認して、TypeScriptのエラーが1つでもあればCIが失敗するようにしてください。エラーがある場合、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を使ってPRで変更されたファイルだけを型チェックし、大規模なリポジトリでのCI時間を短縮してください。

# Use ts-affected or custom script to detect changed TS files
# Then run tsc only for affected tsconfig projects

PRコメントとして型エラーを報告する

danger-jsなどのツールはtscの出力を解析し、型エラーをPRレビューのインラインコメントとして投稿できます。これにより問題を把握しやすくなります。

// dangerfile.ts
import { danger, fail } from "danger";
// Parse tsc --noEmit output and report errors inline

振り返り:CIでの型チェック

正しさを確認するため、CIでtsc --noEmitを実行してください。速度向上には--incrementalとキャッシュを組み合わせます。モノレポではtsc --build、Turborepo、またはNxの変更箇所分析を使って、PRごとの作業量を最小限に抑えてください。

確認問題

ファイルを一切出力せずに型チェックするtscのフラグはどれですか?

学んだこと

CIでの型チェックでは、ファイルを出力せずに正しさを確認するためtsc --noEmitを使用します。--incremental、プロジェクト参照、キャッシュツール(Turborepo、Nx)を組み合わせると、大規模なモノレポでも高速で拡張性のある型チェックを実現できます。

よくある質問

「CIでの型チェック:戦略とツール」レッスンは無料ですか?

はい。「CIでの型チェック:戦略とツール」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、TypeScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 TypeScript Academyコースには全4レッスンが含まれています。

「CIでの型チェック:戦略とツール」で何を学びますか?

継続的インテグレーションのパイプラインで型チェックを効率的に実行します。 ブラウザで直接実行するハンズオンコードでTypeScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

TypeScript Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのTypeScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「CIでの型チェック:戦略とツール」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このTypeScript Academyレッスンでコードを書いて実行できますか?

はい。すべてのTypeScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 遅いTypeScriptコンパイルのプロファイリング
  2. コストの高い型操作を避ける
  3. skipLibCheckとIsolated Declarations
  4. CIでの型チェック:戦略とツール
← TypeScript Academyに戻る