ESLint

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

More than 1 year has passed since last update.

大まかには.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;