如何修复babel意外的保留字'interface'错误

xvw2m8pv  于 2022-12-08  发布在  Babel
关注(0)|答案(2)|浏览(409)

我想用babel在gulp中翻译纯js代码。但是在我的代码中有一个变量“interface”。例如

function func(interface) {
    console.log(interface)
}

我该如何解决这个问题?
软件包版本

"@babel/core": "^7.14.6",
"@babel/preset-env": "^7.14.5",
"gulp": "^4.0.2",
"gulp-babel": "^8.0.0",

我的吞咽任务

function transpileJs() {
    return gulp.src(['folder/**/*.js'])
        .pipe(babel({
             presets: ['@babel/preset-env'],
        }))
        .pipe(gulp.dest('folder/dest/'));
}

错误

谢谢你的帮助

y0u0uwnf

y0u0uwnf1#

“interface”一词在“strict mode”中是一个保留字。这就是为什么你不能用它作为一个标识符来声明任何变量或函数参数。
重命名函数参数,问题就会消失。

tf7tbtn2

tf7tbtn22#

ES6有一个隐式的“strict mode”,所以,一旦通过babel运行代码,你总是会得到"use strict";
现在“interface”是一个reserved keyword as of ECMAScript 2015,如果您使用任何保留的关键字作为参数或变量名,它将抛出一个错误。

相关问题