Ecmascript 6 Eslint-`分析错误:意外标记=`分配的fat箭头/属性初始值设定项错误

Ecmascript 6 Eslint-`分析错误:意外标记=`分配的fat箭头/属性初始值设定项错误,ecmascript-6,eslint,Ecmascript 6,Eslint,我使用的是arrow函数,它抱怨解析错误: 分析错误:意外标记= 但是我的代码是有效的(如果我错了,请告诉我)。此外,我还将.eslintrc设置设置为使用es6解析: .eslintrc { "parserOptions": { "ecmaVersion": 6, } } 这是我的密码: class foo() { // Doesn't like the line below // even though it is valid:

我使用的是arrow函数,它抱怨解析错误:

分析错误:意外标记=

但是我的代码是有效的(如果我错了,请告诉我)。此外,我还将.eslintrc设置设置为使用es6解析:

.eslintrc

{
    "parserOptions": {
        "ecmaVersion": 6,
    }
}
这是我的密码:

class foo() {
     // Doesn't like the line below
     // even though it is valid:
     namedFunction = () => {

     }

}
有办法解决这个错误吗?这使得该的值与特定函数的值有了很大的不同。

您使用的是类字段(也称为属性初始值设定项)语法,它不是ECMAScript 2015(ES6)的一部分,也不是ES2016或2017的一部分,因此ESLint不支持。它目前是一个很好的解决方案。如果要将其与ESLint一起使用,则需要使用。该页描述了如何使用它,但要点是:

装置
$npm安装eslint babel eslint--保存开发
#或
$纱线添加eslint巴贝尔eslint-D
注意:babel eslint需要
babel/core@>=7.2.0
和有效的babel配置文件才能运行。如果尚未设置此项,请参阅

安装程序 要使用babel eslint,必须在eslint配置文件中将
“babel eslint”
指定为
解析器(有关详细信息,请参阅)

.eslintrc.js

module.exports = {
  parser: "babel-eslint",
};
使用解析器集,可以按照文档中的描述配置您的配置


我有一个非常类似的问题。就目前而言,公认的答案是正确的,而且非常有用。但我使用的是eslint配置的json版本,而不是javascript版本,因此一旦安装了babel eslint,使用:

npm i eslint babel eslint——保存开发
我必须更改json配置。现在看起来是这样的:

.eslintrc.json

{
“解析选项”:{
“es6”:正确,
“ecmaVersion”:6,
“源类型”:“模块”,
“ecmaFeatures”:{
“jsx”:正确
}
},
“解析器”:“babel eslint”,
“规则”:{
“没有未使用的变量”:0
},
“环境”:{
“浏览器”:正确,
“节点”:true
}
}

2021年,
babel eslint
似乎已被弃用,取而代之的是
@babel/eslint解析器
,根据:

注意:babel eslint现在是@babel/eslint解析器,并已迁移到babel monorepo

因此,要更新其他答案中的说明,您需要:

npm i eslint@babel/eslint解析器——保存开发
然后确保您在
.eslintrc
中配置了
解析器
键:

{
“解析器”:“@babel/eslint解析器”,
...
}
另一方面,由于OP没有提到运行时,我在节点12中运行,因此我不需要babel来传输代码,但ESlint确实需要babel来过滤代码(听起来很奇怪,但这是我的理解)。所以我还需要一个基本的babel配置,
babel.config.json

{
“预设”:[
[
“@babel/env”,
{
“目标”:{
“节点”:“12”
}
}
]
]
}

我相信这是因为它希望您在类中使用
namedFunction(){…}
但是它在我上面编写的代码的类中,对吗?