2016-11-18 336 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