TypeScript 7.0と6.0の型チェック速度を同じソース・同じtsconfigで実測し、7.1〜8.8倍という倍率とメモリ削減を確かめます。移行で削除されるtsconfigオプションのエラー番号も確認できます。
この記事が解決する悩み
- TypeScript 7 が「10倍速い」と聞いたけど、自分のプロジェクトで何がどれだけ変わるのか分からない
- 6.0 から 7.0 へ上げたいのに、どの tsconfig が壊れるのか把握できていない
- 新しい
--checkersフラグをどう設定すればいいか決められない
対象読者: 型チェックをローカルや CI で回している人。tsconfig.json を自分で管理している人
前提知識: tsc の基本操作と、target / module / moduleResolution といった主要オプションの意味
結論
同じソース・同じ tsconfig で測ると、TypeScript 7.0.2 の型チェックは 6.0.3 の 7.1〜8.8倍速いです。倍率はコードベースが大きいほど上がります。
どちらも手元に置いて比べるなら、公式が用意しているエイリアスをそのまま使うのが手っ取り早いですね。
$ npm install -D "typescript@npm:@typescript/typescript6@^6.0.2" "@typescript/native@npm:typescript@^7.0.2"
これで tsc が 7.0、tsc6 が 6.0 を指す2本立てになります。同じプロジェクトでそのまま叩き比べられます。
$ npx tsc --version
Version 7.0.2
$ npx tsc6 --version
Version 6.0.3
比較の条件
条件を揃えないと倍率の話ができません。ソースも tsconfig も完全に同じものを使い、起動方法だけを変えて計測しました。
- ソース: 決定的に生成した合成コーパス2種類(小規模 300ファイル / 19,500行、大規模 3,000ファイル / 195,000行)
- 依存関係: 各ファイルが前のファイルを
importする線形のつながりを持ちます(大規模は深い依存チェーンになります) - 型の要素: generics、mapped types、template literal types、conditional types、クラス、インデックスアクセスを各ファイルに含めました
- tsconfig:
strict/target es2022/module esnext/moduleResolution bundler/noEmit/skipLibCheck/types [](両者で完全に同一) - 起動方法: どちらも
nodeからbin/tscを起動(ランチャー差で片方に不利が出ないよう揃えました) - 計測: ウォームアップ後の3回の中央値(Windows 11 / Ryzen 9 PRO 8945HS・8コア16スレッド)
実測結果
型チェックの所要時間は次のとおりです。
| 対象 | TypeScript 6.0.3 | TypeScript 7.0.2 | 倍率 |
|---|---|---|---|
| 小規模(363ファイル・19,500行) | 0.991s | 0.139s | 7.1倍 |
| 大規模(3,063ファイル・195,000行) | 5.369s | 0.612s | 8.8倍 |
ファイル数には lib.d.ts などの標準ライブラリが含まれるため、ソースだけだと 300本 / 3,000本です。Microsoft が公表しているベンチマークは 7.7〜11.9倍なので、手元のコーパスでも近い水準が出ています。
なお 7.0 はランチャーの node を挟まずに tsc.exe を直接叩くと 0.540s でした。node を挟む分が約 72ms 乗っている計算になります。
チェック処理そのものは8〜15倍速い
--extendedDiagnostics を付けるとフェーズ別の時間とメモリが出ます。大規模コーパスでの値です。
| 項目(大規模) | TypeScript 6.0.3 | TypeScript 7.0.2 |
|---|---|---|
| Check time | 2.85s | 0.296s |
| Bind time | 0.33s | 0.014s |
| Total time | 4.85s | 0.486s |
| Memory used | 626MB | 411MB |
型チェックの処理時間だけを取り出すと 9.6倍で、メモリも約34%減っています。7.0 が「速い」と言われる所以はこのフェーズに集約されていますね。
小規模で倍率が落ちるのは、7.0 でもプロセスの起動とモジュール解決に一定の時間がかかるためです。0.139秒のうち型チェックに使われているのはごく一部なので、ファイル数が少ないほど倍率は小さく出ます。
–checkers は既定の4でほぼ決まる
大規模コーパスで --checkers を振ってみました。7.0 は型チェックを複数のワーカーに分けて並列化します。
| 設定 | 1 | 2 | 4(既定) | 8 | 16 | –singleThreaded |
|---|---|---|---|---|---|---|
| 所要時間 | 1.484s | 0.868s | 0.612s | 0.467s | 0.450s | 2.092s |
--checkers 1 にすると 2.4倍、スレッドを止める --singleThreaded では 3.4倍遅くなります。既定の4でも並列化はかなり効いている証拠ですね。8コア16スレッドのこのマシンでは 8 → 16 の伸びが 0.02秒しかなく、実質8で頭打ちでした。
TypeScript 7 に上げる手順
順番は 3ステップです。
- エイリアスで 7.0 と 6.0 を同居させる(前述のインストールコマンド)
- tsconfig.json から削除されたオプションを消す
- CI の型チェックを
tscに、エディタや lint はtsc6のままにする
削除されたオプションはエラー番号で見つかる
6.0 で「非推奨」だったものが、7.0 では「削除済み」のエラーとして止まります。実測で踏んだものを並べます。
| 設定 | 7.0 のエラー |
|---|---|
target: es5 |
TS5108(削除済み) |
moduleResolution: node |
TS5108(削除済み) |
baseUrl |
TS5102(paths への置き換え案内つき) |
alwaysStrict: false |
TS5108(削除済み) |
実際の出力はこうなります。
tsconfig.json(3,15): error TS5108: Option 'target=ES5' has been removed. Please remove it from your configuration.
tsconfig.json(6,5): error TS5102: Option 'baseUrl' has been removed. Please remove it from your configuration.
Use '"paths": {"*": ["./*"]}' instead.
baseUrl は消すだけでなく、paths を書くならプロジェクトルートからの相対に書き換える必要があります。
ignoreDeprecations は 7.0 では効かない
6.0 は TS5107 で「"ignoreDeprecations": "6.0" を書け」と案内します。ところがその設定を残したまま 7.0 に上げると、TS5108 のまま動きません。
# 6.0 の案内(これは効く)
tsconfig.json(3,15): error TS5107: Option 'target=ES5' is deprecated and will stop functioning in TypeScript 7.0.
Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.
# 同じ tsconfig を 7.0 で読むと
tsconfig.json(3,15): error TS5108: Option 'target=ES5' has been removed. Please remove it from your configuration.
警告を黙らせる逃げ道は 7.0 では塞がっているので、オプション自体を消すのが唯一の道です。
つまずきポイント
- Vue / Svelte / Astro / MDX はまだ移せない。 7.0 はプログラムから使う API をまだ提供していません。Volar のようにコンパイラを組み込むツールは 6.0 のままで、7.1 で新しい API が入る予定です。
- typescript-eslint などは tsc6 側に残す。 公式の
@typescript/typescript6をエイリアスで入れておけば、lint とエディタは 6.0、CLI の型チェックは 7.0 という併用ができます。 typesの既定が[]になった。 明示しないと@types/nodeのグローバルが読まれません。必要なら"types": ["node"]を書きます。rootDirの既定が./になった。 プロジェクトの外に tsconfig.json を置いている構成では、出力の階層が一段深くなります。- tsconfig がある場所ではファイル指定で動かせない。
tsc a.tsは TS5112 で止まります(これは 6.0 でも同じ)。--ignoreConfigを付けると単体ファイルとして扱えます。 --checkersを増やすとメモリが増える。 ワーカーが型情報を重複して持つためです。メモリ制限のある CI では既定の4、厳しければ1に落とす判断も必要ですね。
実測メモ: --extendedDiagnostics の出力項目は世代で名前が変わります。同じコーパスでも6系は Lines of TypeScript: 195000 と Lines of Library: 56131 に分かれ、7系は Lines: 251144 として合算表示されました。行数を見比べるときは項目名まで確認してください。メモリは6系 641,209K / 7系 421,767K で、この差は Memory used の行に出ます。
まとめ
状況別にすると、選び方はこうなります。
| 状況 | おすすめ | 理由 |
|---|---|---|
| 通常のアプリを型チェックしている | tsc(7.0)に上げる |
7倍以上速くなり、メモリも減る |
| monorepo で project references を使っている | 7.0 + --builders |
プロジェクト単位でも並列ビルドできる |
| Vue / Svelte などを書いている | tsc6 を残して CLI だけ 7.0 |
7.0 に API がまだ無く、埋め込み型チェッカーが追従できない |
| メモリが厳しい CI ランナー | --checkers 1 |
重複する型チェックを止めてメモリを抑える |
速度差は「チェック処理」ではなく「起動とモジュール読み込み」で目減りするので、小さいプロジェクトほど倍率は控えめになります。まずはエイリアスで同居させて、CI の型チェックだけ 7.0 に差し替えるのが安全ですよ。
【広告】【Value AI Writer byGMO】高品質なSEO記事をAIで自動生成。![]()
検証環境
| OS | Windows 11 (build 10.0.26200) |
|---|---|
| CPU | AMD Ryzen 9 PRO 8945HS w/ Radeon 780M Graphics |
| メモリ | 28GB |
| 言語/ツール | TypeScript 7.0.2(ネイティブ。node_modules/@typescript/typescript-win32-x64 の tsc.exe)/ TypeScript 6.0.3(JavaScript 実装。node_modules/@typescript/old を tsc6 として実行)/ Node.js 24.16.0 / npm 11.13.0 |
| 使用コマンド | node node_modules/@typescript/old/bin/tsc –noEmit -p tsconfig.large.json / node node_modules/typescript/bin/tsc –noEmit -p tsconfig.large.json / –checkers 1・2・8・16 / –singleThreaded / –extendedDiagnostics |
| 測定日 | 2026-09-17 |
上記の環境で実際に実行して確認した結果です。環境が異なる場合は挙動が変わることがあります。

参考
本文の記述は以下の一次情報を確認して書いています。
- TypeScript 公式ブログ — Announcing TypeScript 7.0(速度・並列化・削除されたオプション)
- TypeScript 公式ブログ — A 10x Faster TypeScript(ネイティブポートの発表)
- TypeScript 公式ブログ — Announcing TypeScript 6.0(7.0 に向けた非推奨化)
- GitHub — microsoft/typescript-go(ネイティブ実装のリポジトリ)
- GitHub — TypeScript 6.0 と 7.0 の差分(CHANGES.md)
- TypeScript 公式 — tsconfig リファレンス(各オプションの既定値)
- Visual Studio Marketplace — TypeScript 7 の言語サーバー拡張
- GitHub — TypeScript 7.0 への移行ガイド(aka.ms/ts6 の転送先)
あわせて読みたい
- 【TypeScript】import defer 完全ガイド — 評価を遅延する新構文
- 【TypeScript】TypeScript 6.0 移行ガイド — 5.x からの手順と新機能
- 【pnpm】ERR_PNPM_IGNORED_BUILDS の直し方 — allowBuilds へ移行
- 【Node.js】ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX の直し方
【広告】このサイトはConoHa WINGで運営しています。安定した高速サーバーで快適にブログを書けています。いつもありがとう!!![]()

コメント