信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
TypeScript 7がGoで書き直された——tscより10倍速いtsgoの仕組みと今すぐ試す方法
2026年1月公開のTypeScript 7(tsgo)はJavaScriptからGoへのコンパイラ全面書き直しにより、型チェックが30倍・コンパイルが10.8倍高速化。現在の本番利用範囲と移行の注意点を解説。
一言結論
TypeScript 7はGoで書き直されたコンパイラ(tsgo)により10.8倍のコンパイル高速化・30倍の型チェック高速化を達成したが、--noEmitモード(型チェックのみ)は98%超互換の本番利用可だがJSコード生成(emit)は未完。型チェックだけでも今すぐ試す価値がある。
何が変わったのか
2026年1月15日、MicrosoftはTypeScript 7(CLIツール名 tsgo)をリリースした。最大の変更点はコンパイラの実装言語:JavaScriptからGoへの全面書き直しだ。
TypeScriptコンパイラは長年JavaScriptで書かれており、Node.jsのV8エンジン上で動作していた。これが大規模プロジェクトで慢性的なボトルネックになっていた。
JavaScript/V8ベースのtscが遅かった理由:
- V8のGC(ガベージコレクション)による予測不能な停止
- Node.js起動オーバーヘッド(毎回数百msかかる)
- シングルスレッド前提で並列型チェックが困難
- ネイティブ言語に比べてメモリ効率が低い
GoがTypeScript 7の実装言語に選ばれた理由は3つある。
- ネイティブコンパイル → Node.js起動オーバーヘッドとV8 GCポーズが消える
- Goroutine → ファイル単位の並列型チェックを自然に実装できる
- 明確なメモリモデル → TypeScriptの複雑な型推論アルゴリズムを管理しやすいかたちで移植できた
パフォーマンス改善の実数
ベンチマーク結果(tsgo vs tsc 6.0、同一プロジェクト):
型チェック速度: 30倍高速(0.10s → 0.003s)
コンパイル速度: 10.8倍高速(全体平均)
メモリ使用量: 2.9倍削減(68MB → 23MB)
実プロジェクトでの計測:
VS Code(40万行TypeScript): 89秒 → 8.74秒(10.2倍)
Sentry: 133秒 → 16秒(8.3倍)
Playwright: 9.3秒 → 1.24秒(7.5倍)
プロジェクト規模が大きいほど恩恵が大きい。CI/CDで「型チェックが遅すぎる」と妥協していたプロジェクトが現実的な速度で動く。
今すぐ試す方法
ステップ1: tsgoをインストールする
npm install -g @typescript/native-preview
ステップ2: 既存プロジェクトで型チェックを実行する
# --noEmitモード(型チェックのみ、JSは出力しない)
tsgo --noEmit
# tsconfig.jsonを参照する場合
tsgo --noEmit -p tsconfig.json
# プロジェクト参照・増分ビルドも動作する
tsgo --build tsconfig.build.json
ステップ3: tscとの差異を確認する
# tscとtsgoの出力を比較して差異を確認
diff <(tsc --noEmit 2>&1) <(tsgo --noEmit 2>&1)
現時点でtscとの差異が確認されているのは74個のエッジケースのみ。98%以上のプロジェクトではそのまま動くはずだ。
何がまだできないか
2026年4月時点でtsgoが完全サポートしていないもの:
❌ JSコードの生成(emit)
→ 型チェックのみ使い、実際のビルドは tsc 6.0 を継続
❌ VS Codeのエディタ統合(tsserver相当)
→ 2026年中旬にopt-in VS Code拡張機能として提供予定
❌ 一部のエッジケース(74件)
→ tscとの出力差異がある。上記のdiffコマンドで確認
CIでの型チェックだけをtsgoに切り替え、emitはtscのままにするハイブリッド運用が現実的だ。
TypeScript 6.0との関係
TypeScript 6.0(2026年3月23日リリース)はJavaScriptベースの最後のメジャーバージョンで、tsgoへの移行ブリッジとして設計されている。
TypeScript 6.0で変わったデフォルト設定:
- strict: true がデフォルト有効(従来はオプト・イン)
- moduleResolution: "bundler" がデフォルト
- target: "ES2022" がデフォルト(ES3/ES5は非推奨)
- import assertions が廃止 → import attributes に移行
- --stableTypeOrdering フラグ追加(tsgo出力との比較用)
TypeScript 6.0でビルドが壊れる場合は、tsgoの前にまず6.0対応を完了させることを推奨する。
移行ロードマップ
現在(2026年4月):
✅ tsgo --noEmit → 型チェックのみ本番利用可
⚠ emit(JSコード生成)→ tsc 6.0 を継続使用
2026年中旬(予定):
- VS Code拡張機能でのtsgo統合(opt-in)
- エディタ内のホバー型推論・自動補完がtsgoエンジンで動作
2026年後半〜2027年(予定):
- tsgoがtscを完全置き換え
- VS Code標準のTypeScript言語サービスがtsgoに切り替わり
まとめ
TypeScript 7のGoコンパイラは10倍超の高速化という数字以上の意味を持つ。CIの型チェックステップが10秒以下になれば、フィードバックループの質が変わる。今すぐtsgo --noEmitをCI/CDに追加して速度差を体験しておこう。emitはまだtscのままでいい。
参考リンク
- A 10x Faster TypeScript(Microsoft TypeScript Blog)
- TypeScript 6.0 Ships as Final JavaScript-Based Release(Visual Studio Magazine)
- tsgo Released! TypeScript 7’s New Compiler: Installation Guide & 10x Speedup Verification(DEV Community)
- tsgo vs tsc: TypeScript 7 Go Compiler Benchmarks(PkgPulse)
- TypeScript 7 Go Compiler: 10x Faster Benchmarks 2026(byteiota)
- Microsoft Ports TypeScript to Go for 10x Native Performance Gains(Visual Studio Magazine)