用于JS装饰器的ESLint意外字符'@'

时间:2016-11-18 13:21:13

标签: javascript eslint ecmascript-next

我正在尝试在我的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
        ]
    }
}

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"