TypeScript 5.2の新しいキーワード - using
(totaltypescript.com)- TypeScript 5.2で、スコープを抜けるときにオブジェクトを明示的に破棄できる新しいキーワード
usingが追加。 - C# などにすでに存在する
usingと似た機能。- 特定の関数がオブジェクトを返すとき、
Symbol.disposeシンボルを使って関数を割り当てる。 usingを通じてその関数を呼び出す。- その後スコープを抜けると、
Symbol.dispose関数が呼び出される。
- 特定の関数がオブジェクトを返すとき、
- 最近ステージ3に到達した TC39の明示的リソース管理提案 に基づいている。
Symbol.asyncDisposeを通じて非同期関数を割り当て、await usingを使って非同期的にオブジェクトを処理できる。- DB接続、ファイルハンドラなど、さまざまな状況で活用可能。
1件のコメント
この機能は実のところTypeScript独自の機能ではなく、ECMAScriptに提案されている機能に基づいた、いわばポリフィルのようなものです。
TC39の提案により、JavaScriptでも実装される予定だそうです。
私はC#を書いていたときに
usingが少し便利だった記憶があるので歓迎ではあるのですが、結局
try ... finallyと同じではないか、という声もそこそこあるようですね。