TypeScript 7.0が正式公開された。既存実装をGoへ移植したネイティブコンパイラで、共有メモリ並列処理と最適化によりフルビルドでおおよそ8〜12倍の速度向上を狙う。型チェックの意味論はTypeScript 6.0と構造的に同一とされ、stableTypeOrdering を有効にし ignoreDeprecations を使わない6.0で通るコードは7.0でも同様に通る想定である。
npm install -D typescript大規模OSSでのフルビルド比較は次のとおり(既定の --checkers 4)。
| 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 |
メモリ使用量もコードベースにより数%〜二十数%程度の削減が示されている。VS Codeコードベースでは、エディタ起動から最初のエラー表示までが約17.5秒から1.3秒未満へ短縮された。
安定版のプログラムAPIは7.1以降の見込みのため、typescript-eslintなど typescript を直接 import するツールは6.0との併用が想定される。互換パッケージ @typescript/typescript6 が tsc6 と6.0 APIを提供し、npmエイリアスで並べて入れられる。
{
"devDependencies": {
"@typescript/native": "npm:typescript@^7.0.2",
"typescript": "npm:@typescript/typescript6@^6.0.2"
}
}パース・型チェック・emitを並列化する。型チェックワーカー数は --checkers(既定4)、プロジェクト参照の並列ビルドは --builders で調整でき、デバッグ向けに --singleThreaded もある。--watch はParcel由来のファイルウォッチャをGoへ移植した基盤に載せ替えられた。ナイトリーは今後 typescript@next へ移行し、これまで使われていた @typescript/native-preview から切り替わる。
6.0で導入された既定値と非推奨化が7.0では本格適用される。strict 既定が true、module が esnext、types が空配列、stableTypeOrdering が常時有効などが中心で、target: es5 や moduleResolution: node / classic、baseUrl などはエラーになる。rootDir と types の変更が移行で影響しやすい。
{
"compilerOptions": {
"rootDir": "./src",
"types": ["node", "jest"]
},
"include": ["./src"]
}テンプレートリテラル型の推論はUnicodeコードポイント単位になり、絵文字 "😀" がサロゲートペア2つに分割されなくなる。JSDocベースのJavaScript解析もTypeScriptファイルに近い規則へ整理され、@enum の特別扱いやClosure風関数記法などは廃止方向にある。
エディタ向けにはLSP基盤のGoコンパイラが使われ、VS CodeではTypeScript 7専用拡張が既定の言語サービスになる。一方、安定API未提供のため Vue / MDX / Astro / Svelte や Angular のテンプレート型チェックなど埋め込み用途は当面6.0側に残る。