■ 1. TypeScript 7.0の正式リリース
- 米Microsoftは7月8日(現地時間)、「TypeScript 7.0」を正式リリースした
- 2025年5月のプレビュー公開から先月公開のリリース候補(RC)版を経て、安定版として利用可能になった
- 従来のコンパイラー・言語サービスはTypeScript自身で記述されていた(Strada)が、本バージョンは1年以上をかけてGo言語へ忠実に移植された
■ 2. 性能向上
- ビルド高速化:
- ネイティブコードの速度、共有メモリによるマルチスレッド処理、新しい最適化により、フルビルドは「TypeScript 6.0」比でおおむね8~12倍高速化
- 大規模オープンソースプロジェクトでの計測結果は次の通り
- 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倍)
- メモリ使用量:
- ビルド全体で必要となるメモリも6~26%少なく済む
- エディター体験:
- 「Visual Studio Code」のコードベースでファイルを開いてから最初のエラーが表示されるまでの時間は、従来の約17.5秒から1.3秒未満へ削減
- 13倍以上の高速化に相当する
■ 3. 品質・互換性の検証
- Microsoft社内に加え、Bloomberg、Canva、Figma、Google、Notion、Sentry、Slack、Vercelといった企業と協力し、実際の大規模コードベースを用いたテストを実施
- 新しい言語サーバーは「TypeScript 6.0」に比べ、コマンドの失敗が80%以上、サーバーのクラッシュが60%以上削減された
- Slackからのフィードバック:
- マージキュー時間の40%を解消
- CIでの型チェックが約7.5分から1.25分に短縮
■ 4. インストールと利用方法
- 「TypeScript 7.0」は従来どおり「npm」からインストール可能であり、「tsc」コマンドで利用できる
- ナイトリービルドは、これまでの「@typescript/native-preview」から通常の「typescript@next」へ順次戻される
■ 5. 互換性と移行時の注意点
- 型チェックのロジックと挙動は「TypeScript 6.0」と互換であり、「6.0」でクリーンにコンパイルできるコードはそのまま利用できる
- 一方で「6.0」で導入された新しい既定値をそのまま採用し、「6.0」で非推奨となっていたフラグや構文はハードエラーとなる
- そのため、まずは「TypeScript 6.0」へ移行して問題点を洗い出しておくことが推奨されている
- 主な既定値の変更:
- 「strict」が既定で有効に
- 「module」の既定が「esnext」に
- 「target」は「esnext」の直前の安定版「ECMAScript」が既定に
- 「noUncheckedSideEffectImports」が既定で有効に
- 「libReplacement」が既定で無効に
- 「stableTypeOrdering」が既定で有効に(無効化は不可)
- 「rootDir」の既定が「./」に(srcなどの内部ソースディレクトリは明示的な指定が必要)
- 「types」の既定が「[]」に(従来の挙動は「["*"]」を指定すれば復元できる)
■ 6. 新しい実験的フラグ
- パース・型チェック・出力の並列実行を調整できる実験的な「--checkers」「--builders」フラグが導入された
- 並列化を無効化する「--singleThreaded」フラグも導入された
- 型チェックワーカーの既定数は4だが、「--checkers 8」を指定すると「vscode」のビルドは16.7倍まで高速化された
- 「--watch」モードも、「Parcel」バンドラーのファイルウォッチャーをGoへ移植した新しい基盤で作り直されている
■ 7. エディター対応
- 「Visual Studio Code」で利用する場合は専用拡張機能を導入するだけでよく、数週間以内に本体へも同梱される予定
- 「Visual Studio」の場合、最新版であればワークスペースに応じて自動で有効化される
- 新しい言語サーバーはLSP(Language Server Protocol)ベースであり、そのほかのモダンなエディターでも動作する
■ 8. APIとフレームワーク対応の制約
- 「TypeScript 7.0」にはプログラムから利用できるAPIが同梱されておらず、新しいAPIは「TypeScript 7.1」で提供される見込み
- それまでの間、「typescript-eslint」のようにAPIへアクセスするツール向けに、「6.0」を併用できる互換パッケージ「@typescript/typescript6」(「tsc6」コマンド)が用意されている
- 「npm」エイリアスでの導入が推奨されている
- 「Vue」や「Astro」、「Svelte」を使ったワークフロー、「Angular」テンプレート内の型チェックは当面「TypeScript 7」を利用できず、「6.0」の継続利用が必要となる
■ 9. 今後の方針
- 同チームは今後、新機能の開発に復帰し、これまでどおり3~4カ月ごとのリリースを予定している