【问题标题】:How to fix babel Unexpected reserved word 'interface' error如何修复 babel 意外的保留字“接口”错误
【发布时间】:2021-09-06 12:00:15
【问题描述】:

我想使用 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",

我的任务

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

错误

感谢您的帮助

【问题讨论】:

  • 接口是 JavaScript 中的 reserved word。您不能将其用作变量名。

标签: javascript gulp babeljs


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    ES6 有一个隐含的“strict mode”,因此,通过 babel 运行代码后,您将始终在程序中添加 "use strict";

    现在“接口”是reserved keyword as of ECMAScript 2015,如果你使用任何保留关键字作为参数或变量名,它会抛出错误。

    【讨论】:

      猜你喜欢
      • 2021-11-18
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 2013-12-02
      • 2023-01-11
      • 2019-01-06
      相关资源
      最近更新 更多