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
},
// 以下略
}
コレだけ〜。