LoginSignup
176

More than 5 years have passed since last update.

ESLintのコメントでのルール制御

Posted at

大まかには.eslintrcに書いとけばいいが、ファイルや特定の場合によって個別にルールを無効にしたい時がちょこちょこある。その辺をコメントで解決できる方法がいくつかあるのでまとめ。

ファイル全体

例えばこのコードはno-unused-varsというルールの警告を受けるが、

const a = 1;

こうすれば回避できる。

/* eslint no-unused-vars: 0 */
const a = 1;

注意点として必ず/* */で囲む事。また、ルールは,で区切って複数指定できます。

/* eslint ... */で書いたものは、そのファイル全体で有効になるので、こうすると再度有効になってaにもbにも警告を受ける。

/* eslint no-unused-vars: 0 */
const a = 1;
/* eslint no-unused-vars: 2 */
const b = 2;

ちなみに設定の数値はそれぞれ、0="off" 1="warn" 2="error" という意味です。

特定の行のあるルールを無効に

以下のルールが使える。これらはルール名を指定しないとすべてを無効にし、指定するばそれだけ無効にする。ルールは,で区切って複数指定できます。

eslint-disable-next-line <...rule>

無効にしたい行の前の行に書く。以下はbだけが警告される。

注意点として必ず//記法を使う事。

// eslint-disable-next-line no-unused-vars
const a = 1;
const b = 1;

eslint-disable-line <...rule>

無効にしたい行と同じ行に書く。以下もbだけが警告される。

注意点として必ず//記法を使う事。

const a = 1; // eslint-disable-line no-unused-vars
const b = 1;

eslint-disable <...rule>eslint-enable

これは行というより範囲だけど。2つの間のルールが無効になる。以下もbだけが警告される。

注意点として必ずどちらも/* */記法を使う事。

/* eslint-disable no-unused-vars */
const a = 1;
/* eslint-enable no-unused-vars */
const b = 1;

eslint-enableは指定したルールだけ戻す感じで、何も指定しなければすべて戻すことができる。

/* eslint-disable no-unused-vars, no-unused-expressions */
const a = 1;
() => {};
/* eslint-enable */
const b = 1;

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
176