跳至主要内容

@babel/plugin-transform-nullish-coalescing-operator

信息

此插件包含在 @babel/preset-env 中,位于 ES2020

示例

输入

JavaScript
var foo = object.foo ?? "default";

输出

JavaScript
var _object$foo;

var foo =
(_object$foo = object.foo) !== null && _object$foo !== void 0
? _object$foo
: "default";
注意

我们不能在这里使用 != null,因为 document.all == null 并且 document.all 被认为不是“空值”。

安装

npm install --save-dev @babel/plugin-transform-nullish-coalescing-operator

用法

babel.config.json
{
"plugins": ["@babel/plugin-transform-nullish-coalescing-operator"]
}

通过 CLI

Shell
babel --plugins @babel/plugin-transform-nullish-coalescing-operator script.js

通过 Node API

JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-nullish-coalescing-operator"],
});

选项

loose

boolean,默认为 false

当为 true 时,此转换将假装 document.all 不存在,并使用 null 执行松散相等检查,而不是对 nullundefined 执行严格相等检查。

警告

考虑迁移到顶层 noDocumentAll 假设。

babel.config.json
{
"assumptions": {
"noDocumentAll": true
}
}

示例

输入

JavaScript
var foo = object.foo ?? "default";

输出

JavaScript
var _object$foo;

var foo = (_object$foo = object.foo) != null ? _object$foo : "default";
提示

您可以在 此处 阅读有关配置插件选项的更多信息

参考