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.