为什么ESLint无法识别我的类箭头函数?

2022-02-25 00:00:00 javascript eslint babeljs class-fields

我遵循了有关How do I configure ESLint to allow fat arrow class methods将解析器设置为babel-eslint哪些状态的建议。

我安装了它并更新了我的配置文件,如下所示:

{
  "parserOptions": {
    "parser": "babel-eslint",
    "ecmaVersion": 12,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "rules": {
    "semi": "error",
    "indent": ["error", 2],
    "eqeqeq": ["error", "always"],
    "max-depth": ["error", 5],
    "space-before-function-paren": ["error", "never"],
    "template-curly-spacing": ["error", "always"],
    "quotes": ["error", "single", { "allowTemplateLiterals": true }],
    "curly": "error",
    "brace-style": ["error", "1tbs"],
    "space-before-blocks": "error"
  }
}

但是,它仍在中断eslint,出现解析错误,如下所示:

class Person {
  constructor() {
    console.log(this);
    this.hello1();
    this.hello2();
  }

  // breaks eslint, but WHY?

  hello1 = () => {
    console.log(this);
  }
  
  hello2() {
    console.log(this);
  }

}
const P1 = new Person();

突出显示第一个=并显示:

解析错误 意外令牌=

如何进一步解决此问题?ESLint正确应用了此文件中的所有规则,但似乎忽略了解析器选项。

还是其他什么?

我不确定这是否与此处相关:

https://github.com/babel/babel-eslint#note-babel-eslint-is-now-babeleslint-parser-and-has-moved-into-the-babel-monorepo

但我真的不知道那是什么意思。


解决方案

您的配置文件不正确:

这里有一行:

"parser": "babel-eslint",

什么也不做。遗憾的是,它不会抛出错误并继续使用默认解析器。

完成此操作后,如果正确安装了依赖项的睡觉,则可以开始使用巴别塔解析器。

相关文章