11月9日、MicrosoftはTypeScript 5.7のリリース候補(RC)を発表した。このRCはnpm経由で簡単にインストール可能であり、以下のコマンドを用いることで利用できる。
npm install -D typescript@rc
今回のTypeScript 5.7 RCには、以下のような新機能や改良点が含まれている。
1. 未初期化変数のチェック強化
TypeScript 5.7では、変数が初期化されていない場合のエラー検出が強化された。これにより、未初期化の変数が使用されるリスクが軽減される。以下の例では、resultが初期化されていない場合にエラーを報告する。
function foo() {
let result: number
function printResult() {
console.log(result); // error: Variable 'result' is used before being assigned.
}
}
2. 相対パスのリライト機能
TypeScript 5.7には、相対パスをJavaScriptファイルの拡張子に自動的に変換する--rewriteRelativeImportExtensionsオプションが追加された。以下のコードでは.tsファイルが.jsファイルにリライトされる。
// Under --rewriteRelativeImportExtensions...
import * as foo from "./foo.ts"; // will be rewritten to "./foo.js"
3. --target es2024と--lib es2024のサポート
新たに--target es2024がサポートされ、SharedArrayBufferやArrayBuffer、Object.groupByなど、ECMAScript 2024の機能が利用可能となった。例えば、TypedArray型はより柔軟に使用できるようにジェネリックが追加された。
4. プロジェクトの所有権を確認するための設定ファイル検索の改良
エディタが適切なtsconfig.jsonファイルを見つけやすくするため、TypeScript 5.7は上位ディレクトリまでの検索をサポートし、複数のプロジェクト設定を持つプロジェクトでの管理が改善された。
5. Node.js向けV8のコンパイルキャッシュサポート
Node.js 22の新しいmodule.enableCompileCache()APIを活用することで、tsc --versionコマンドの実行速度が約2.5倍に向上した。以下はベンチマークの結果である。
Benchmark 1: node ./built/local/_tsc.js --version (*without* caching)
Time (mean ± σ): 122.2 ms ± 1.5 ms [User: 101.7 ms, System: 13.0 ms]
Range (min … max): 119.3 ms … 132.3 ms 200 runs
Benchmark 2: node ./built/local/tsc.js --version (*with* caching)
Time (mean ± σ): 48.4 ms ± 1.0 ms [User: 34.0 ms, System: 11.1 ms]
Range (min … max): 45.7 ms … 52.8 ms 200 runs
Summary
node ./built/local/tsc.js --version ran
2.52 ± 0.06 times faster than node ./built/local/_tsc.js --version
詳細はAnnouncing TypeScript 5.7 RCを参照していただきたい。
I’m curious if the V8 cache support will actually speed things up that much in real projects. geometry dash