概要
Microsoftは、言語史上初めて安定版のネイティブコンパイラを搭載したTypeScript 7.0を正式リリースした。従来JavaScriptで実装されていたコンパイラをGo言語へ全面移植したもので、実測ではVisual Studio Codeのビルド時間が125.7秒から10.6秒へと約12倍、Slackの CIビルドは7.5分から1.25分へ短縮されるなど、大手プロジェクトで軒並み大幅な高速化が確認された。Sentryでも139.8秒から15.7秒(約8.9倍)、Bluesky でも24.3秒から2.8秒への短縮が報告されており、エディタ上のエラー検出速度も17.5秒から1.3秒へと劇的に改善している。メモリ使用量についても約18%削減されたという。
技術的な詳細
今回のコンパイラは、2025年3月に実験版として発表されて以来開発が進められてきたもので、既存のTypeScriptツールセットをGoに「忠実に移植(faithful port)」した実装となっている。マルチスレッドに対応し、言語サーバープロトコル(LSP)ベースで動作する点が特徴で、--checkersと--buildersという新しいフラグにより並列処理の粒度を調整できる。UIやブラウザでの操作を想定して設計されたJavaScriptは、コンパイラのような計算集約的なワークロード向けには作られていなかったとされ、シングルスレッドの制約を超える必要性が今回の全面書き換えの背景にあるという。マイクロソフトの技術フェローAnders Hejlsberg氏は、エディタでエラーのあるファイルを開く際の速度差を実演し、TypeScript 6の17.5秒からTypeScript 7では1.3秒へと短縮されたことを示した。ベンチマークでは16コア環境で4つの型チェッカーを並列実行し、最大12コアまでのスケールが確認されている。さらに、7.0ではstrictモードとesnextターゲットがデフォルト設定に変更され、TypeScript 6.0で非推奨とされていた機能の一部は本リリースでハードエラーとして扱われるようになった。
互換性の問題と移行
一方で、コンパイラの全面刷新に伴い一部のツールとの互換性が失われている。VolarをはじめとするVue向けツール、ts-jest、Angular・Svelte・MDXのテンプレートチェッカー、ts-morphなどは、TypeScript 7.0への対応がまだ完了していない。これは、フレームワーク統合に必要なプログラマティックAPIが7.1まで実装されていないためで、TypeScript-ESLintやwebpack連携についても同様に7.1での対応待ちとなっている。また、ES5コンパイルターゲット、AMD/SystemJSモジュール形式、クラシックモジュール解決といった旧来のオプションは廃止され、指定するとビルドが強制的に失敗するようになった。新しいtsconfig.jsonでは@typesパッケージの自動読み込みも行われなくなっている。既存プロジェクトを守るため、互換性パッケージ「@typescript/typescript6」が用意されており、これを利用することで従来のツールチェーンを維持したまま移行時期を見極めることができる。Vanta のエンジニアからは「すべてが極めて高速化した」との評価が寄せられる一方、あるHacker Newsの開発者からは「責任あるかたちで移行を成し遂げたチームに賛辞を送りたい」との声が寄せられている。
今後の展望
Vue・Svelte・Angular・MDXなどが必要とする新しいコンパイラAPIは、2026年10月に予定されているTypeScript 7.1で提供される見込みだ。それまでの間、これらのフレームワークを利用するプロジェクトはTypeScript 6.0.x系列にとどまることが推奨されている。マイクロソフトは今後、3〜4ヶ月ごとのリリースサイクルで機能開発を再開する方針を示しており、7.1ではエコシステムが待ち望むAPI対応が最優先事項となる見通しだ。