ESLint で async 関数を使用した class が誤判定される件の対処法
ESLint を使い始めて困ったちょっとしたこと。
以下のように、class
構文の中で async
を使った関数を定義した。
class MyClass {
async doSomething() {
const result = await anotherMethod();
return result;
}
}
このような JS ファイルを ESLint にかけてみたところ、何故か Lint エラーと判定されてしまった。
なぜかと思って調べてみると、eslintrc
で定義している ecmaVersion
が 2015
と古かったため、async
を正常に解釈できなかった模様。
そこで、ecmaVersion
指定を 2017
にすると、問題が解消した。
/** .eslintrc.js */
module.exports = {
"extends": "eslint:recommended",
"env": {
"node": true,
"commonjs": true,
"es6": true
},
"parserOptions": {
// ↓ async を使用したクラスを解釈させるため 2017 を指定する
"ecmaVersion": 2017
},
// 以下略
}
コレだけ〜。