es6でclassを定義したとき、eslint(no-shadow: 2)を通らない理由を知りたい

投稿者: Anonymous

babelを使用してes6でjsを書いています。
linterをjsxhintからeslintへ変更し、.eslintrcのno-shadowを2にしてチェックしたのですが、以下のような注意がでます。

CLASS is alrerady declared in the upper scope. (no-shadow)

※ CLASSは定義したclass名です
no-shadowを0にすれば出なくなるのは良いのですが、なぜこのようなエラーがでるのか理由を知りたく質問させていただきました。対処法があれば教えていただければ幸いです。
よろしくお願いいたします。

非常にシンプルではありますがclassの例を記述します(これでも同じエラーが出ることを確認済)。

class Something {
  constructor() {
    // do something
  }
}

.eslintrcはairbnb/javascriptで再現可能かと思います。

解決

ちょうど今日、バグ報告されたようです。

Latest release 0.21.1 fails with ES6 classes and babel-eslint · Issue #2545 · eslint/eslint

とりあえずの回避策としては eslint のバージョンを 0.21.0 に落とせばいいとのこと。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *