NOTE: This plugin is included in @babel/preset-env, in ES2020
In
JavaScript
var foo = object.foo ?? "default";
Out
JavaScript
var _object$foo;
var foo =
(_object$foo = object.foo) !== null && _object$foo !== void 0
? _object$foo
: "default";
NOTE: We cannot use != null here because document.all == null and document.all has been deemed not "nullish".
pnpm add --save-dev @babel/plugin-proposal-nullish-coalescing-operator
babel.config.json
{
"plugins": ["@babel/plugin-proposal-nullish-coalescing-operator"]
}
Shell
babel --plugins @babel/plugin-proposal-nullish-coalescing-operator script.js
JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-proposal-nullish-coalescing-operator"],
});
boolean, defaults to false.
When true, this transform will pretend document.all does not exist, and perform loose equality checks with null instead of strict equality checks against both null and undefined.
?? Consider migrating to the top level noDocumentAll assumption.
babel.config.json
{
"assumptions": {
"noDocumentAll": true
}
}
In
JavaScript
var foo = object.foo ?? "default";
Out
JavaScript
var _object$foo;
var foo = (_object$foo = object.foo) != null ? _object$foo : "default";
You can read more about configuring plugin options here
更多建議: