TypeScriptの開発チームより、2025年12月に非常にエキサイティングなアップデートが発表されました。
現在進行中のプロジェクト「Corsa」こと「TypeScript 7.0」は、コンパイラおよびランゲージサービスをネイティブコードへ移植するという野心的な取り組みです。
今回の発表では、その開発が最終段階に近づいていること、そしてパフォーマンスが劇的に向上していることが具体的な数値とともに公開されました。
このネイティブ化は、単なるマイナーアップデートではなく、TypeScriptの歴史における最大の転換点となるでしょう。
TypeScript 7.0へのマイルストーン:ネイティブ移植の現在地
TypeScriptチームは、これまでJavaScript(Stradaと呼ばれるコードベース)で記述されていたコンパイラを、ネイティブコードへと移植する作業を続けてきました。
この取り組みの主な目的は、生の実行パフォーマンスの向上、メモリ使用量の削減、そして並列処理の最適化にあります。
2025年12月現在、このプロジェクトは非常に大きな進展を遂げており、すでに「本物」のツールセットとして利用可能なレベルに達しています。
開発チームは、この新しいツールチェーンがいかに安定しており、日常的な開発に耐えうるものであるかを強調しています。
エディタサポートとランゲージサービスの進化
多くの開発者にとって、プロジェクトの書き換えはリリースされるまで実感が湧かないものですが、TypeScript 7.0のネイティブプレビューはすでにVS Code上で高速かつ安定して動作する状態にあります。
エディタの機能を支えるランゲージサービスもネイティブ移植のコアパーツであり、以下の機能がすでに実装され、良好に動作しています。
- コード補完(自動インポートを含む)
- 定義、型定義、実装への移動
- すべての参照の検索
- シンボルの名前変更(リネーム)
- ホバーツールチップ(クイック情報)
- フォーマット設定
- クイック修正(ミッシングインポートの解決など)
特に、自動インポートや参照検索、名前変更といった機能の再実装が完了したことは大きなニュースです。
これにより、プロジェクト参照(Project References)を使用している大規模なコードベースであっても、ネイティブプレビューを日常的に試すことが可能になりました。
また、共有メモリを利用した並列処理の導入により、エディタの応答性が大幅に向上し、メモリ消費も抑えられています。
ネイティブコンパイラ「tsgo」の圧倒的なパフォーマンス
TypeScript 7.0のコンパイラは、@typescript/native-previewというパッケージ名でNightlyビルドが公開されています。
このパッケージをインストールすると、従来のtscに代わる新しいコマンドtsgoが利用可能になります。
ネイティブ版コンパイラの導入方法
インストールはnpmを通じて簡単に行うことができます。
既存の環境と共存させることが可能なため、リスクを抑えて試用できます。
# ローカルの開発用依存関係としてインストールする場合
npm install -D @typescript/native-preview
# グローバル環境にインストールする場合
npm install -g @typescript/native-preview
インストール後、プロジェクトのルートで以下のコマンドを実行することで、ネイティブ版によるビルドを試せます。
# インクリメンタルビルドモードでの実行例
tsgo -b some.tsconfig.json --extendedDiagnostics
ベンチマーク結果に見る劇的な改善
最も注目すべき点は、その驚異的なスピードです。
TypeScript 7.0(tsgo)は、従来のバージョン6.0と比較して最大で約10倍の高速化を実現しています。
以下の表は、いくつかの著名なオープンソースプロジェクトにおけるフルビルド時間の比較です。
| プロジェクト | tsc (6.0) | tsgo (7.0) | 差異 | 高速化倍率 |
|---|---|---|---|---|
| sentry | 133.08s | 16.25s | 116.84s | 8.19倍 |
| vscode | 89.11s | 8.74s | 80.37s | 10.2倍 |
| typeorm | 15.80s | 1.06s | 14.20s | 9.88倍 |
| playwright | 9.30s | 1.24s | 8.07s | 7.51倍 |
この高速化は、ネイティブコードによる実行効率だけでなく、マルチスレッドによる並列ビルドの恩恵も受けています。
特に大規模プロジェクトにおいては、ビルド待ち時間が数分から数秒へと短縮されるため、開発効率に劇的な変化をもたらします。
TypeScript 6.0から7.0への移行と互換性
TypeScript 7.0への移行をスムーズにするため、チームは「ブリッジ(橋渡し)」としての役割を果たすTypeScript 6.0をリリースします。
しかし、重要な点として、TypeScript 6.0がJavaScriptベースで構築される最後のメジャーリリースになることが明言されました。
廃止される機能と推奨される設定
TypeScript 7.0では、長年メンテナンスされてきた古い機能やフラグが整理されます。
主な変更点は以下の通りです。
--strictがデフォルトで有効化されます。--targetのデフォルトが最新の安定したECMAScript(es2025など)になります。--target es5のサポートが終了し、最低サポートがes2015になります。--baseUrlが削除されます。- 旧来の
node10モジュール解決が削除され、bundlerやnodenextへの移行が推奨されます。
これらの変更に対応するため、開発チームは設定ファイルを自動更新するためのツールts5to6を提供しています。
# baseUrl の設定を新しい形式に修正する
npx @andrewbranch/ts5to6 --fixBaseUrl your-tsconfig-file-here.json
既知の制限事項と今後の課題
現時点のネイティブ版には、まだいくつかの制限が存在します。
JavaScriptへのトランスパイル(Emit)パイプラインは完全ではなく、特に古いランタイム向けのダウンレベルコンパイルや、デコレータのコンパイルなどは開発途上です。
そのため、Babelやesbuildなどの外部ツールを併用しているプロジェクトではすぐに導入できますが、TypeScriptのみで古いブラウザ向けに出力している場合は注意が必要です。
また、JSDocを用いたJavaScriptの型チェック機能も一から書き直されており、一部の複雑なパターン(例:@enumや@constructorタグ)のサポートが簡素化されています。
TypeScript 6.0がJSベースの最終版に
TypeScript 6.0のリリース以降、チームはリソースのすべてをネイティブ版である7.0へと集中させます。
そのため、6.1といったマイナーアップデートは予定されていません。
今後の機能追加や改善は、原則としてネイティブコードベースで行われることになります。
これは非常に大きな決断ですが、開発チームは「Strada(JSベース)」から「Corsa(ネイティブ版)」への完全な移行こそが、開発者に最高のツール体験を届ける最善の道であると判断しました。
バグ修正やセキュリティパッチについては6.0に対しても継続されますが、新機能は7.0以降の特権となるでしょう。
まとめ
2025年12月のアップデートにより、TypeScript 7.0は単なる理想論ではなく、実際に利用可能な次世代の標準としてその姿を現しました。
ネイティブ化によって得られる10倍近いビルド速度の向上は、モダンな開発環境において比類なきアドバンテージとなります。
一方で、TypeScript 6.0がJavaScriptベースの最後のリリースとなることは、すべての開発者にとって「ネイティブ時代への準備」を始めるサインでもあります。
まずはVS Codeのネイティブプレビュー拡張機能を導入し、自分のプロジェクトでどの程度の恩恵が受けられるかを試してみることから始めてみてはいかがでしょうか。
TypeScriptの未来は、これまで以上に高速で、効率的なものになろうとしています。
今後の正式リリースに向けたさらなる続報に期待しましょう。
