如何修复 babel Unexpected reserved word 'interface' 错误

How to fix babel Unexpected reserved word 'interface' error

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

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",

我的gulp任务

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

错误

感谢您的帮助

“接口”一词在“严格模式”中保留。这就是为什么您不能将它用作标识符来声明任何变量或函数参数的原因。

重命名函数参数,问题就会消失。

ES6 有一个隐含的“严格模式”所以,一旦 运行 你的代码通过 babel,你总是会在你的程序中添加 "use strict";

现在“接口”是一个reserved keyword as of ECMAScript 2015,如果您使用任何保留关键字作为参数或变量名,它将引发错误。