@babel/plugin-transform-template-literals
非官方测试版翻译
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
信息
此插件已包含在 @babel/preset-env 中
示例
输入
JavaScript
`foo${bar}`;
输出
JavaScript
"foo".concat(bar);
安装
- npm
- Yarn
- pnpm
- Bun
npm install --save-dev @babel/plugin-transform-template-literals
yarn add --dev @babel/plugin-transform-template-literals
pnpm add --save-dev @babel/plugin-transform-template-literals
bun add --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
}
]
]
}
通过命令行
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 假设。
babel.config.json
{
"assumptions": {
"mutableTemplateObject": true
}
}
当 mutableTemplateObject 设为 true 时,标记模板字面量对象不会被冻结。所有模板字面量表达式和静态部分(quasis)将使用 + 运算符进行连接,而不是使用 String.prototype.concat。
当设为 false 或未设置时,所有模板字面量表达式和静态部分(quasis)将使用 String.prototype.concat 进行连接。此方式会正确处理包含 Symbol.toPrimitive 的情况,并且当模板字面量表达式为 Symbol() 时会正确抛出错误。详见 babel/babel#5791。
输入
JavaScript
`foo${bar}`;
输出
JavaScript
"foo" + bar;
提示
你可以在此处阅读更多关于配置插件选项的信息。