Microsoftは、TypeScriptの最新メジャーバージョン「TypeScript 7.0」を正式にリリースした。最大の目玉は、これまでTypeScript自身(JavaScript)で書かれていたコンパイラを、Go言語で全面的に書き直したことだ。この移植により、大規模プロジェクトのビルド時間は最大12倍、エディタ上の型チェックも大幅に高速化し、メモリ使用量も大きく削減されている。
コンパイラをゼロから書き直した理由
従来のtscはNode.js上で動くJavaScript実装で、プロジェクトが大きくなるほど型チェックに数十秒から数分かかることも珍しくなく、開発体験上のボトルネックになっていた。Microsoftはこの問題に対処するため、コンパイラをGoで書き直す取り組み(開発コード名「tsgo」)を進めてきており、TypeScript 7.0はその成果を正式に取り込んだリリースとなる。今後はネイティブバイナリとして配布される新コンパイラがデフォルトになる。
主な性能改善
- ビルド速度が最大12倍高速化(プロジェクト規模やハードウェア構成に依存)
- マルチコアを活用した並列型チェックに対応
- メモリ使用量の大幅な削減により、巨大なmonorepoでもメモリ不足になりにくい
- VS Codeなどの言語サーバーの応答性が向上し、入力中の補完やエラー表示が速くなる
実務への影響
日本のエンジニアやIT管理者にとっては、CI/CDのビルド時間短縮がそのままCI実行コストの削減や開発サイクルの短縮につながる。特にフロントエンドの大規模SPAや、Nx・Turborepoなどでmonorepo構成を運用している現場ほど恩恵は大きいはずだ。
一方で、コンパイラがネイティブバイナリ化されることに伴い、一部のtscプラグインやカスタムトランスフォーマーとの互換性は事前に確認しておきたい。CI環境がOS・アーキテクチャ別のバイナリを問題なく取得できるか、社内のセキュリティスキャンやアーティファクトミラーの登録が必要かどうかも、移行前にチェックしておくべきポイントだ。とはいえ、多くのプロジェクトは「package.json更新→ローカルビルド確認→CI適用」という標準的なアップグレード手順で恩恵を受けられる設計になっている。
筆者の見解
TypeScriptコンパイラのGo移植は、派手さはないが開発現場に確実に効いてくる改善だと感じる。日々の型チェック待ち時間やCIのビルド時間は、エンジニアの体感生産性に直結する部分であり、そこを地道に磨き込んだ今回の取り組みは素直に評価したい。Microsoftには、こうした基盤への投資をもっと前面に出してアピールしてほしいとすら思う。
ただし、コンパイラをネイティブバイナリとして配布する以上、社内のCI環境やセキュリティポリシーとの整合性確認は避けて通れない。標準的なアップグレード手順を踏めば多くの現場が恩恵を受けられる設計になっている点は好感が持てるし、こうした王道の改善を地道に積み重ねる姿勢を、今後も期待したい。
出典: この記事は Microsoft releases TypeScript 7.0, and it’s 10x faster than the previous version の内容をもとに、筆者の見解を加えて独自に執筆したものです。