概要

Microsoftは10月20日、TypeScriptの次期バージョン7.1のベータ版を公開した。TypeScript 7系はGo言語で書き直されたネイティブコンパイラ基盤への移行を進めているバージョン系列で、7.0時点で従来のJavaScript実装比で約10倍の性能向上を実現していたが、7.1ではそこからさらなる最適化を積み重ねている。実測値として、blueskyのビルドでは4.48秒から3.89秒(約1.2倍、13.2%削減)、mui-docsでは22.2秒から11.9秒(約1.9倍、46.6%削減)への短縮が示されており、mui-docsのメモリ使用量も8,093 MiBから4,079 MiBへと49.6%削減されたという。これらの改善は数十件に及ぶ最適化の積み重ねによるもので、プロジェクトによって改善度には差がある。

新しいプログラマティックAPIとフレームワーク連携

7.1では、コンパイラをプログラムから利用するための新しいモジュール型エントリポイントが整理された。同期的に動作するtypescript/sync、Promiseベースのtypescript/async、ファイルシステム操作を扱うtypescript/fs、構文木を直接操作するtypescript/astといった用途別のモジュールが用意され、ツール開発者が必要な機能だけを選んで組み込めるようになっている。さらに「Content Mappers」という機能により、Vue・Svelte・Astroといった単一ファイルコンポーネント形式のフレームワークでの型チェックがコンパイラ側でより深く統合された。これまでこうしたフレームワークの型チェックは言語サーバー向けのプラグインに頼る部分が大きかったが、コンパイラ自体がソースマッピングを扱えることで、エディタ上の診断やビルド時チェックの一貫性が向上すると期待される。

言語機能とES2026ターゲット

言語仕様の面では、アンビエントモジュール宣言でインポート属性(import attributes)をサポートし、CSSやテキストファイルなどを読み込む際の型定義の精度が改善された。また、ECMAScriptの提案段階にある「Source Phase Imports」を実装し、WebAssemblyモジュールを事前にロードして制御する新しい構文に対応している。ビルドターゲットとしては安定版のES2026サポートが加わり、Math.sumPrecise()やIterator.concat()などのイテレータ操作、JSON.rawJSON()を含むJSONパースの拡張、Map/WeakMapへのgetOrInsert()、Base64・Hex変換関数といった新しい標準ビルトインをターゲットコードで直接利用できるようになる。

破壊的変更と今後の見通し

一方で、条件型における型パラメータの分配(distributive conditional types)に関する検証が厳格化され、一部の既存コードでは型エラーの修正が必要になる可能性がある点は注意が必要だ。リリーススケジュールとしては、今回のベータ版公開から約1か月後にリリース候補(RC)版を公開し、その後に正式版をリリースする計画が示されている。Go移植によるコンパイラの高速化は7.0での大幅な性能向上に続く形で段階的に進んでおり、今後のRC版・正式版でもビルド時間とメモリ使用量の改善が継続的に図られるとみられる。