[[TypeScript 5.2]]で導入予定のキーワード。関数が[[スコープ (JavaScript)|スコープ]]を離れるときにリソースやイベントハンドラなどを破棄するよう定義できる。
[[Symbol.dispose]]という[[グローバルシンボル]]を利用する。
> [!caution]
> 以下のコードは試しに書いてみたものの #2023/06/27 時点では[[🎮TypeScript Playground]]のNightlyでも[[Symbol.dispose]]が認識しなかった。
```ts
console.log("start main")
{
console.log("start scope")
const getResource = () => {
return {
[Symbol.dispose]: () => {
console.log('resourceがスコープから外れたらこれが実行される')
}
}
}
using resource = getResource();
console.log("end scope")
}
console.log("end main")
```
実行結果。
```console
$ npm run dev
start main
start scope
end scope
resourceがスコープから外れたらこれが実行される
end main
```