@babel/plugin-transform-nullish-coalescing-operator
info
This plugin is included in @babel/preset-env, in ES2020
Example
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".
Installation
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-transform-nullish-coalescing-operator
yarn add --dev @babel/plugin-transform-nullish-coalescing-operator
pnpm add --save-dev @babel/plugin-transform-nullish-coalescing-operator
bun add --dev @babel/plugin-transform-nullish-coalescing-operator
Usage
With a configuration file (Recommended)
babel.config.json
{
"plugins": ["@babel/plugin-transform-nullish-coalescing-operator"]
}
Via CLI
Shell
babel --plugins @babel/plugin-transform-nullish-coalescing-operator script.js
Via Node API
JavaScript
require("@babel/core").transformSync("code", {
plugins: ["@babel/plugin-transform-nullish-coalescing-operator"],
});
Options
loose
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.
caution
Consider migrating to the top level noDocumentAll assumption.
babel.config.json
{
"assumptions": {
"noDocumentAll": true
}
}
Example
In
JavaScript
var foo = object.foo ?? "default";
Out
JavaScript
var _object$foo;
var foo = (_object$foo = object.foo) != null ? _object$foo : "default";
tip
You can read more about configuring plugin options here