メインコンテンツにスキップ

@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は「nullish」とはみなされていないからです。

インストール

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が存在しないものとして扱い、nullundefinedの両方に対する厳密な等価性チェックではなく、nullとの緩い等価性チェックを実行します。

注意

トップレベルの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";
ヒント

プラグインオプションの設定について詳しくはこちらをご覧ください。

リファレンス