跳至主要内容

@babel/plugin-transform-template-literals

信息

此插件包含在 @babel/preset-env

示例

输入

JavaScript
`foo${bar}`;

输出

JavaScript
"foo".concat(bar);

安装

npm install --save-dev @babel/plugin-transform-template-literals

用法

无选项

babel.config.json
{
"plugins": ["@babel/plugin-transform-template-literals"]
}

有选项

babel.config.json
{
"plugins": [
[
"@babel/plugin-transform-template-literals",
{
"loose": true
}
]
]
}

通过 CLI

Shell
babel --plugins @babel/plugin-transform-template-literals script.js

通过 Node API

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

选项

loose

boolean,默认为 false

注意

考虑迁移到顶层 mutableTemplateObject 假设。mutableTemplateObject

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

mutableTemplateObjecttrue 时,带标签的模板字面量对象不会被冻结。所有模板字面量表达式和准则都使用 + 运算符组合,而不是使用 String.prototype.concat

false 或未设置时,所有模板字面量表达式和准则都使用 String.prototype.concat 组合。它将正确处理 Symbol.toPrimitive 的情况,并在模板字面量表达式为 Symbol() 时正确抛出错误。参见 babel/babel#5791

输入

JavaScript
`foo${bar}`;

输出

JavaScript
"foo" + bar;
提示

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