跳至主内容

@babel/plugin-transform-explicit-resource-management

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

信息

该插件已包含在 @babel/preset-envES2026 预设中。

该插件使 Babel 能够转换使用 using handler = await read(); 语法的显式资源声明。

示例

input.js
using handlerSync = openSync();
await using handlerAsync = await openAsync();

将被转换为

output.js
try {
var _usingCtx = babelHelpers.usingCtx();
var handlerSync = _usingCtx.u(openSync());
var handlerAsync = _usingCtx.a(await openAsync());
} catch (_) {
_usingCtx.e = _;
} finally {
await _usingCtx.d();
}

在 REPL 中尝试

安装

npm install --save-dev @babel/plugin-transform-explicit-resource-management

用法

通过配置文件(推荐)

babel.config.json
{
"plugins": ["@babel/plugin-transform-explicit-resource-management"]
}

通过命令行

Shell
babel --plugins @babel/plugin-transform-explicit-resource-management script.js

通过 Node API

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-explicit-resource-management"]
});

参考