Eslint无法使用nodejs 12识别私有字段声明

问题描述 投票:2回答:1

Eslint无法识别类声明中带有#的私有字段,即使我使用的是NodeJS版本12(支持它们)。

我正在运行NodeJS v12.7.0。我已经搜索了所有DuckDuckGo和Goole,但是在eslint中找不到插件或选项,该插件或选项将告诉它接受私有字段符号(#)。我已将emca设置为版本10

class MyClass {
   #foo = 'bar';
   #bar = 'foo';

   constructor(foo, bar) {
      this.#foo = foo;
      this.#bar = bar;
   }
   ...
};

当我在上面的代码上运行eslint时,我得到:

2:3 error Parsing error: Unexpected character '#'

我正在从事的项目未使用Babel,并且我不想为了使私有字段正常工作而将其包括在内。有什么想法可以使这项工作有效而又不必使用Babel吗?

((当然不反对Babel,这只是在这个特定项目上,我不想要)。

node.js eslint private private-members
1个回答
3
投票

[我认为您可能不得不硬着头皮使用babel-eslinthttps://github.com/babel/babel-eslint,这需要安装babel/core@>=7.2.0

尽管私有类字段包含在节点12中,但根据spec仍为第3阶段实验性功能(截至2019年8月)

npm install eslint babel-eslint --save-dev
# or
yarn add eslint babel-eslint -D

并添加

  "parser": "babel-eslint",

到您的.eslintrc.js文件

© www.soinside.com 2019 - 2024. All rights reserved.