マイクロソフトは、TypeScript 7.0をリリースした。これは、長らく開発が続けられてきたネイティブコンパイラを搭載した同言語初の安定版であり、TypeScriptのツールセットをGoへ忠実に移植したもので、チームによると、フルビルドにおいて通常8倍から12倍の高速化を実現するという。
このプロジェクトは、2025年3月に初めて発表された実験的なネイティブ移植版としてスタートした。その後、@typescript/native-previewパッケージとしてコミュニティ向けに提供され、週間ダウンロード数は850万件を超えていた。
TypeScript 7.0では、ナイトリービルドが標準のtypescriptパッケージのnextタグ配下で提供されるようになった。また、新しいtsc実行ファイルも従来どおりの方法でインストールできるようになっている。
npm install -D typescript マイクロソフトは、その数字を裏付けるため、実際のコードベースにおけるビルド時間の比較結果を公開した。VS Codeのソースコードでは、フルビルド時間がTypeScript 6の125.7秒から10.6秒へと短縮され、11.9倍の高速化を実現した。また、メモリ使用量も約18%削減された。新しいツール群はLanguage Server Protocol(LSP)をベースとし、マルチスレッドにも対応しているため、エディタの応答性も向上している。VS Codeのコードベースでエラーを含むファイルを開く場合、従来は約17.5秒かかっていたが、現在では1.3秒未満で開けるようになった。
TypeScript 7.0の早期リリース版をテストした企業からも同様の効果が報告されている。Slackのエンジニアリングチームは、この変更によりCI環境での型チェック時間が約7.5分から1.25分に短縮されたと述べている。また。Vantaも好意的な結果を報告している。
Vantaでは、tsgoの導入が非常に大きな効果をもたらしています。現在では、あらゆるものが本当に信じられないほど高速になっています。
並列処理は、新たに追加された--checkersおよび--buildersフラグで調整できる。また、リソースが限られた環境では --singleThreadedを指定することで並列処理を完全に無効化することも可能である。
TypeScript 7.0には、安定したAPIインターフェースはまだ含まれておらず、開発チームはこれをTypeScript 7.1で提供する見込みとしている。そのため、現時点ではtypescript-eslintをはじめ、Vue、Svelte、Astro、MDX、Angular向けの開発ツール群は新コンパイラを利用できない。
Hacker Newsのスレッドでは、ある開発者が実際の数値を共有するとともに、開発チームと今回の移行作業を称賛するコメントを投稿した。
テストに基づく高速化の結果は次のとおりです。
Codebase TypeScript 6 TypeScript 7 Speedup vscode 125.7s 10.6s 11.9x sentry 139.8s 15.7s 8.9x bluesky 24.3s 2.8s 8.7x playwright 12.8s 1.47s 8.7x tldraw 11.2s 1.46s 7.7x 責任ある形で移行を進めながら、この偉業を成し遂げたチームに祝意を表しました。
一方、ブログのコメント欄では、webpackローダーを利用しているプロジェクトについては、現時点では新コンパイラを利用できず、対応を待つ必要があるとの指摘も寄せられた。
すべてのプロジェクトをTypeScript 7へアップグレードするのを楽しみにしていますが、その大半でwebpackを使用しており、7.0リリースではwebpackローダーから利用できる公開APIが7.0には存在しないようです。
そのため、残念ながら7.1を待たなければなりません。
この並行運用の仕組みは、移行戦略の中核を担っている。マイクロソフトは互換性維持のために@typescript/typescript6パッケージを公開しており、tsc6 バイナリを提供するとともに、TypeScript 6.0のAPIを再エクスポートしている。これにより、既存のツールはnpmエイリアスを介して引き続き動作する。
また、TypeScript 7.0では、TypeScript 6.0で非推奨とされていた機能がエラーとして扱われるようになったほか、 strictとesnextがデフォルト設定となった。そのため開発チームは、移行を円滑に進めるために、まずTypeScript 6.0を導入することを推奨している。詳細な挙動の違いについては、プロジェクトのCHANGES.md で確認できる。
esbuild、swc、Biomeといった高速なツールは、型チェックを行わずに型情報を削除またはトランスパイルすることで高速化を実現している。一方、TypeScript 7.0は完全な型チェック機能を維持したまま、こうしたツールとの速度差の大部分を縮めている。
開発チームによると、今回の移植版のリリースにより新機能の開発を再開できるようになり、今後は3〜4カ月ごとのリリースを予定しているという。また、TypeScript 7.1では、エコシステム全体が待ち望んでいるAPIの提供に重点が置かれる見込みだ。
TypeScriptは、マイクロソフトが開発・保守するオープンソースのプログラミング言語で、Apache 2.0ライセンスの下で提供されている。JavaScriptにオプションの静的型付け機能を追加することで、エラーの早期発見を容易にし、大規模なアプリケーションをより安心して開発できるようにしている。