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

8 javascript eslint ecmascript-next

我正在尝试在我的JS项目中使用装饰器,但是ESLint正在抛出一个错误,指出@符号是一个意外的字符.

我的代码:

@observable items = [];
Run Code Online (Sandbox Code Playgroud)

我的.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
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 14

你可能想使用babel-eslint,它使用Babel来解析ESLint尚未实现的东西(通常是像这样的实验性功能).从他们的自述文件:

目前,如果你使用类属性,装饰器,类型等东西,你将需要它.

您当前的eslint设置一起使用,您只需更新您的一些配置.eslintrc

  • @DeanGibson正在融合。自述文件具有设置说明。签出eslintrc部分(“ parser”:“ babel-eslint”,`) (2认同)
  • 来自babel-eslint的README.md的引用可能比起来的问题更重要:"目前,如果使用类属性,装饰器,类型等东西,你将需要它." (2认同)

bor*_*a89 10

快速回答:

安装一个库

npm i -D babel-eslint
Run Code Online (Sandbox Code Playgroud)

添加到您的 .eslintrc

"parser": "babel-eslint"
Run Code Online (Sandbox Code Playgroud)