问题
I'm current developing an API on Node 12.14.1 and using Eslint to help me write the code. Unfortunately it does not allow me to set static class properties as shown below:
class AuthManager {
static PROP = 'value'
}
The following error is given: Parsing error: Unexpected token =eslint
Static class properties are already supported on JS and on Node.
How can this rule be disable?
I also have the following .eslintrc.json
file:
{
"env": {
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
}
}
回答1:
ESLint with its default parser does not support class fields syntax for now. You can solve the problem by changing the configured parser to babel-eslint
.
npm install --save-dev babel-eslint
// eslintrc.json
{
"parser": "babel-eslint",
...
}
Eslint's default parser, Espree, does not support class fields because that syntax is currently stage 3, and that it is decided that only stage 4 proposals are to be supported in Espree.
回答2:
you need to install @babel/eslint-parser
:
yarn add --dev @babel/eslint-parser
And have the parser in your .eslintrc.yml
for instance:
parser: "@babel/eslint-parser"
来源:https://stackoverflow.com/questions/60046847/eslint-does-not-allow-static-class-properties