解析错误:在 JavaScript 类中声明私有成员时出现意外字符“#”

Aji*_*mar 6 javascript eslint

当使用“#”在 javascript 类中声明私有成员时,eslint 会抛出错误Parsing error: Unexpected character '#'

例如。

class Test{
  #priavteMember; //Parsing error: Unexpected character '#'
}
Run Code Online (Sandbox Code Playgroud)

eslint配置:.eslintrc.json

{
    "env": {
        "browser": true,
        "es2021": true,
        "node": true
    },
    "extends": [
        "airbnb-base"
    ],
    "rules": {
        "no-use-before-define": "off",
        "no-param-reassign": "off",
        "no-plusplus": "off",
        "no-nested-ternary": "off",
        "lines-between-class-members": "off"
    },
    "globals": {
        "root": "readonly",
        "app": "readonly",
        "db": "readonly"
    }
}
Run Code Online (Sandbox Code Playgroud)

Aji*_*mar 9

将其添加到 .eslintrc.json

{
  ...
  "parserOptions": {
      "ecmaVersion": 13,
  },
  ...
}
Run Code Online (Sandbox Code Playgroud)

ECMA版本 13中引入了私有成员说明符。


GOT*_*O 0 6

使用es2022环境,它会自动将ecmaVersion解析器选项设置为 13,如文档中所示:

    "env": {
        "browser": true,
        "es2022": true,
        "node": true
    },
Run Code Online (Sandbox Code Playgroud)