164
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

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

大まかには.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;
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
164
Help us understand the problem. What are the problem?