我正在尝试在我的JS项目中使用装饰器,但是ESLint正在抛出一个错误,指出@符号是一个意外的角色。
我的代码:
@observable items = [];
我的.eslintrc:
{
"parserOptions": {
"ecmaVersion": 6,
"ecmaFeatures": {
"jsx": true
},
"sourceType": "module"
},
"env": {
"browser": true,
"node": true,
"es6": false
},
"ecmaFeatures": {
"modules": true
},
"rules": {
"strict": [
2,
"global"
],
"quotes": [
2,
"single"
],
"indent": [
2,
4
],
"eqeqeq": [
2,
"smart"
],
"semi": [
2,
"always"
],
"max-depth": [
2,
4
],
"max-statements": [
2,
15
],
"complexity": [
2,
5
]
}
}
答案 0 :(得分:12)
您可能希望使用babel-eslint使用Babel来解析ESLint尚未实现的内容(通常是像这样的实验性功能)。从他们的自述文件:
目前,如果您使用类属性,装饰器,类型等内容,您将需要它。
使用当前的eslint设置,您只需更新.eslintrc
答案 1 :(得分:2)
如果使用Visual Code,它将不会始终有效。您需要在以下参数中添加到用户设置(或工作区设置)中:
{
...
"eslint.options": {
"experimentalDecorators": true
}
...
}
不知何故,这个选项赢得了你投入的任何东西.eslintrc。
答案 2 :(得分:1)
快速解答:
安装一个库
npm i -D babel-eslint
添加到您的.eslintrc
"parser": "babel-eslint"
答案 3 :(得分:0)
使用 babel-parser
可能修复了“@”,但会导致一系列其他警告和错误。我所做的是将所有使用装饰器的文件放入存储文件夹中,创建一个 .eslintignore
文件并指向该目录。
答案 4 :(得分:0)
如果你使用@babel/core.你需要安装@babel/eslint-parser
添加到您的 .eslintrc
<块引用>解析器:"@babel/eslint-parser"