期間: 2026-09-24 〜 2026-09-27 · PR 6 件(新機能 2 / 変更・修正 2 / その他 2)
新機能
ビルドオーケストレーター API(createBuildOrchestrator)を追加(#64158)
何ができるようになったか
TS 6 より前で
SolutionBuilderと呼ばれていた機能を、プログラム的 API として実装した(#63875 の一部)。TS 7.1 ではBuildOrchestratorという名前になる。
- 使い方:
await using orchestrator = api.createBuildOrchestrator(["/c/tsconfig.json"], { cwd: "/" });としてorchestrator.build()を呼ぶ。メソッドはbuild(project?)/buildReferences(project)/clean(project?)/cleanReferences(project?)- 戻り値:
BuildResponse(status・diagnostics?・statistics)。clean 系はCleanBuildResponseで、削除したファイルのfilesDeleted?も返す- オプション:
BuildOrchestratorOptionsのcwd・dry・force・verbose・stopBuildOnErrors・overrideCompilerOptions(incremental・declaration・declarationMap・emitDeclarationOnlyなどを上書き)
⏳ 未リリース · トピック: プログラム的API、ビルドとファイル監視
api-extractor が使う AST ヘルパーを追加(#64439)
何ができるようになったか
api-extractor が使う AST のヘルパー関数が API に追加された。
- 追加された関数:
isExternalModule(sourceFile)、getCombinedModifierFlags(declaration)、getNameOfDeclaration(declaration)
⏳ 未リリース · トピック: プログラム的API
変更・修正
createSourceFile で作ったファイルを parse キャッシュに載せ、破棄可能な lease を返すように(#64434)
Before
api.createSourceFile/api.createSourceFileFromFileは、単独のソースファイルをそのまま返していた。
After
クライアント・サーバーの両方でグローバルな parse キャッシュから取得し、破棄可能な lease(
lease.sourceFileでファイルを取得)を返すようになった。同じファイル名・テキストで作ったソースファイルは同一のオブジェクトになり、同じファイルとオプションを見るcreateProgramのgetSourceFileとも一致する(host のreadFileが同じテキストを返す場合)。既に parse 済みのファイルを使うプログラム作成では parse のコストが減る。
移行が必要
戻り値がソースファイルから lease に変わった。
const sourceFile = api.createSourceFile(fileName, text);はusing lease = api.createSourceFile(fileName, text);としてlease.sourceFileを使う形に書き換える。
⏳ 未リリース · トピック: プログラム的API
グローバル診断の集め方を Strada(旧 TypeScript)に合わせ、エディタでは診断以外のグローバルエラーを出さないように(#64452)
Before
エディタでのホバーなど、診断を出す目的ではないチェッカーでも、位置を持たない循環参照エラーがグローバル診断になり、どのファイルにも結び付かない診断が出ていた(#64405)。
After
特定のファイルのチェック中に出たグローバル診断を追跡する Strada のコードを移植し、インクリメンタルモードでも正しく扱えるようにした。エディタでは、診断を出さないチェッカーからのグローバル診断を返さない。
⏳ 未リリース · トピック: 型チェッカー・コンパイラ