如何修复 babel 意外的保留字“接口”错误

Posted

技术标签:

【中文标题】如何修复 babel 意外的保留字“接口”错误【英文标题】:How to fix babel Unexpected reserved word 'interface' error 【发布时间】: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。您不能将其用作变量名。 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于如何修复 babel 意外的保留字“接口”错误的主要内容,如果未能解决你的问题,请参考以下文章

Meteor 1.3 NPM:意外的保留字导入

对打字稿文件语法错误的开玩笑测试:“接口是严格模式下的保留字”

在选择字段中使用保留字

如何停止获取错误并保留数据:缺少换行符:在位置 116 发现意外字符 0x31

如何修复“解析错误:保留关键字‘await’”

UWP 尝试保留应用名称时发生意外错误