Goへのネイティブ移植で「桁違い」の高速化を実現
TypeScript 7は、これまでJavaScriptで実装されていたコンパイラをGo言語でネイティブに書き直した初の安定版リリースです。Microsoftのプリンシパルプロダクトマネージャーであるダニエル・ローゼンワッサー氏は、「TypeScript 7はネイティブコードの速度、共有メモリによるマルチスレッド処理、そしてフルビルドで8倍から12倍の高速化をもたらす複数の最適化を実現した」と説明しています(出典)。
実際に公開されたベンチマークでは、いくつかの大規模オープンソースプロジェクトで次のような結果が出ています。
| プロジェクト | TypeScript 6 | TypeScript 7 | 高速化倍率 |
|---|---|---|---|
| vscode | 125.7秒 | 10.6秒 | 11.9倍 |
| sentry | 139.8秒 | 15.7秒 | 8.9倍 |
| bluesky | 24.3秒 | 2.8秒 | 8.7倍 |
| playwright | 12.8秒 | 1.47秒 | 8.7倍 |
| tldraw | 11.2秒 | 1.46秒 | 7.7倍 |
(出典)
vscodeのフルビルドは125.7秒から10.6秒へ、実に11.9倍高速化しました。
メモリ使用量も削減、エディタの体感速度が大きく向上
高速化はビルド時間だけにとどまりません。同じプロジェクトで比較すると、メモリ使用量も軒並み削減されています。
- vscode:5.2GB → 4.2GB(-18%)
- bluesky:1.8GB → 1.3GB(-26%)
- tldraw:0.6GB → 0.5GB(-15%)
さらに印象的なのは、エディタでの体感速度です。VS Codeのコードベースでエラーを含むファイルを開いた際、エディタ起動から最初のエラー表示までの時間は従来約17.5秒かかっていたのに対し、TypeScript 7では1.3秒未満に短縮されたといいます。13倍以上の高速化という数字を見ると、日々のコーディング体験がかなり変わりそうだと感じます(出典)。
導入はnpm installだけ、エディタ連携もそのまま
TypeScript 7の導入方法はこれまでと変わりません。
npm install -D typescript
これだけで新しいtsc実行ファイルが使えるようになります。VS Code・Visual Studio・WebStormなど主要エディタは言語サーバープロトコル(LSP)経由で新しいTypeScript 7に対応しており、VS Code向けには専用拡張機能も用意されています(出典)。
記事執筆時点でGo言語自体も初の安定版がリリースされたタイミングと重なっており、TypeScriptとGoの両プロジェクトにとって節目のリリースになったといえそうです。普段Pythonと合わせてTypeScriptを触る身としては、find-all-referencesや自動補完の遅さにストレスを感じる場面が多かったので、この高速化はかなりありがたい変化です。
開発中にAIエージェントを使ってコードを生成・検証する機会が増えている今、tscの実行速度が上がることはAIとの反復作業のテンポにも直結します。開発フロー全体の効率化という観点でも注目したいアップデートです。