TypeScript 7.0が登場し、コンパイラはネイティブGoベース版へ移行、桁違いのパフォーマンス向上を実現しました。
TL;DR Link to heading
- 10倍の速度: フルビルドが最大12倍、エディタの診断表示が最大13倍高速化。
- メモリの軽量化: 大規模プロジェクトでのメモリ使用量の合計を最大26%削減。
- ネイティブな並列処理: マルチコアでのスケーリングに対応した新しい
--checkers・--buildersフラグを追加。 - 安定したウォッチモード: Parcelのウォッチャーをネイティブ移植し、
--watchモードを刷新。 - 厳格なデフォルト設定:
strict: trueやmodule: esnextなど、モダンな標準を採用。
圧倒的なパフォーマンス Link to heading
コードベースをGoへ移植したことで、TypeScript 7.0はネイティブの実行速度と共有メモリによるマルチスレッド処理を活用できるようになりました。VS Codeのコードベースのビルド時間は10.6秒に短縮され(従来の125秒から大幅改善)、最初のエラー診断もわずか1.3秒で表示されるようになりました。SlackやVantaチームでは、CIの実行時間が40〜90%短縮されたと報告されています。
スケーリングとインフラ Link to heading
新しい実験的フラグにより、開発者はパフォーマンスを細かく調整できます。
--checkers: 型チェックを並列化します(デフォルトは4ワーカー)。--builders: モノレポにおけるプロジェクト参照ビルドを並列化します。--watch: 従来のコストの高いポーリング方式に代わり、Parcelのファイルウォッチャーを高速なGo移植版で置き換えます。
言語のモダナイゼーション Link to heading
今回のリリースでは、モダンな設定が強制され、レガシーな負債が取り除かれています。
- 新しいデフォルト設定:
strict、stableTypeOrdering、noUncheckedSideEffectImportsが、デフォルトでtrueになりました。 - ハードエラー:
target: es5、baseUrl、moduleResolution: nodeのサポートが廃止され、nodenextやbundlerといったモダンな代替設定への移行が求められます。 - Unicode対応: テンプレートリテラル型において、絵文字がUTF-16のサロゲートペアとしてではなく、正しく単一の単位として扱われるようになりました。
互換性とセットアップ Link to heading
TypeScript 7.0にはまだ安定版のプログラマティックAPIが用意されていないため、typescript-eslintやVue/Svelteなどのツールを利用しているユーザーは、@typescript/typescript6互換パッケージを使用することで、新旧バージョンを併用して実行できます。
インストール:
npm install -g typescript
最適な開発体験を得るには、VS Codeユーザーは新しい言語サーバーを有効化できるTypeScript 7拡張機能をインストールすることをおすすめします。