2016-11-18 339 views
3

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

我的代码:

@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

一些配置有在ES6没有装饰。 – zeroflagL

回答

6

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

目前,如果您使用像类属性,装饰器,类型的东西,你将需要它。

它是用来您当前eslint的设置,你只需要更新您的.eslintrc

+0

感谢马特,我不能从那个链接中弄清楚,但是如果安装babel-eslint应该替换我当前的'eslint',还是与它一起使用呢? – Tiwaz89

+0

@DeanGibson它是相结合的。自述文件有安装说明。看看eslintrc部分('“parser”:“babel-eslint”,') – Matt

+2

babel-eslint的README.md这句话可能会比eslint更重要的一点:“目前,你需要它如果你使用像类属性,装饰器,类型的东西。“ – Aaron