[node.js]クラスに定義したスタティックプロパティに対してESLintの警告を出力しないようにする

システム開発Tips

ESLintがclass内に定義したstaticプロパティを許さない。。。だと?

ESLintの設定にparserがあるが、
その設定で特にparserを指定せずESLintを利用している場合に以下のように定義すると以下のエラーが表示される。

Parsing error: Unexpected token =eslint

どうやら標準のparserではclass内に定義したstaticプロパティを解釈できないようです。

Class hoge {
  static moge = '';
}

※ちなみにNode.jsを利用した開発時のお話

class内に定義したstaticプロパティをESLintに許してもらう方法

結論としてはEslintのparserを指定すればよい。

のだけど、それ系のサイトには色々な解決方法があってbabel-eslint@babel/eslint-parser、結局どっちなの?などよくわからなかったのでメモ書き。

parserは@babel/eslint-parserを利用する。

npm i @babel/eslint-parser -D

babel-eslint@babel/eslint-parserの上位互換らしい。これ重要。
 以降、babel-eslintの記事は無視できるので。

.eslintrc

{
  parser: '@babel/eslint-parser'
}

大体これで上記の記述で動く!って書いてるけど自分の場合、全然動かなかった。

で、さらに調べると、babelの設定ファイルの指定が必要とか書いててしてしてみたもののそれでも動かなくて結局以下の設定内容に落ち着いた。

.eslintrc

{
  parser: '@babel/eslint-parser',
  parserOptions: {
    requireConfigFile: "false"
  };
}

.babelrc

/*空で作る*/
{}

設定ファイルでrequireConfigFileをfalseに指定しているのに.babelrcファイルを作成しないといけないのが謎だけど、とりあえず上記の設定で目的は達成できた。

参考:ESLintでクラス構文の static 変数 エラー警告を消す

フォローお願いします!

コメント

タイトルとURLをコピーしました