09.05.2025, Ссылка на новость
В стандарте ECMAScript появится явное управление ресурсами – более явный подход для работы с дескрипторами файлов, соединениями и любыми объектами, реализующими [Symbol.dispose]()
или [Symbol.asyncDispose]()
. Для удобства работы с такими ресурсами появятся новые ключевые слова – using
и await using
, которые были добавлены в TypeScript 5.2.
Ключевое слово using
вызывает [Symbol.dispose]()
синхронно при выходе из блока, для await using
схожая логика, за тем отличием, что в [Symbol.asyncDispose]()
можно написать асихнронную логику.
Дополнительно к ключевым словам и специальным символам были добавлены новые классы – DisposableStack
и AsyncDisposableStack
, которые необходимы для агрегации ресурсов. Классы для агрегации обеспечивают более широкий функционал и позволяют описать поведение для не-disposable ресурсов, добавить обработку в конце всех dispose и явно вызвать очистку ресурсов.
Новую фичу обсуждали на прошедшем meeting of Ecma TC39 и её перевод в Stage 4, а ещё она стала доступна с Хромиума 134.