跳到主要內容

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

此外掛程式讓 Babel 能使用宣告轉換 using handler = await read();

範例

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

將轉換為

output.js
try {
var _stack = [];
var handlerSync = babelHelpers.using(_stack, openSync());
var handlerAsync = babelHelpers.using(_stack, await openAsync(), true);
} catch (_) {
var _error = _;
var _hasError = true;
} finally {
await babelHelpers.dispose(_stack, _error, _hasError);
}

在 REPL 上嘗試.

安裝

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

用法

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

透過 CLI

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

透過 Node API

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

參考