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
]
}
}
おそらく babel-eslint を使用すると、ESLintがまだ実装していないもの(通常、このような実験的な機能)を解析するためにBabelが使用されます。彼らのREADMEから:
現時点では、クラスプロパティ、デコレータ、型などを使用する場合に必要になります。
現在のeslintセットアップでwithを使用しています。.eslintrc
簡単な答え:
ライブラリをインストールする
npm i -D babel-eslint
.eslintrcに追加
"parser": "babel-eslint"
Visual Codeを使用している場合、常に機能するとは限りません。次のパラメーターをユーザー設定(またはワークスペース設定)に追加する必要があります:{ ... "eslint.options": { "experimentalDecorators": true } ... }
どういうわけか、このオプションは.eslintrcに入れたすべてのものを獲得します。