ESLint ルール 一覧 (日本語)

0 件のコメント

ESLint ルール を一通り日本語訳して一覧化してみました。 記載はできるだけ「デフォルトがどのような状態か」という内容で記載しています。

なお、最新情報および詳細情報は ESLint - Rules を参照してください。

エラーになりやすい

no-cond-assign 条件処理内で代入を行わないこと
no-console console の使用をしないこと
no-constant-condition 条件判定文が定数のみの判定になっていないこと
no-control-regex 正規表現内で制御文字を使用しないこと
no-debugger debugger の使用しないこと
no-dupe-args function 内で重複して変数宣言を行わないこと
no-dupe-keys オブジェクト内で重複するキーを指定しないこと
no-duplicate-case 重複するcase文を作らないこと
no-empty-character-class 正規表現内で空文字クラスの使用しないこと
no-empty 空ブロックを作らないこと
no-ex-assign catch文内で例外変数に再代入を行わないこと
no-extra-boolean-cast 不要なboolean型キャストを行わないこと
no-extra-parens 不要な括弧を記述しないこと
no-extra-semi 不要なセミコロンの記述しないこと
no-func-assign function を再定義しないこと
no-inner-declarations ネストしたブロック内で変数および関数の宣言を行わないこと
no-invalid-regexp RegExpコンストラクタに不正な正規表現文字列を指定しないこと
no-irregular-whitespace 規格外の空白文字の使用しないこと
no-obj-calls 組み込みオブジェクトを関数のように使用しないこと
no-prototype-builtins オブジェクトインスタンスから Object.prototype の組み込み関数呼び出しを行わないこと
no-regex-spaces 正規表現において複数スペースを使用しないこと
no-sparse-arrays 配列においてまばらな値設定を行わないこと
no-template-curly-in-string 通常文字列中においてテンプレートリテラルを使用しないこと
no-unexpected-multiline 紛らわしい複数行コード記述を行わないこと
no-unreachable 到達不可能なコードを記述しないこと
no-unsafe-finally finally句内において制御文を使用しないこと
no-unsafe-negation 関係演算子の左側において否定演算子の使用を行わないこと
use-isnan NaNチェックにはisNaN()を利用すること
valid-jsdoc コメントはJSDoc形式で記述すること
valid-typeof typeof利用時は正しい型名文字列と比較すること

ベストプラクティス

accessor-pairs getter とsetter はペアで作成すること
array-callback-return 配列の組み込み関数のコールバックでは必ずreturnを記述すること
block-scoped-var 宣言した変数は宣言したブロックスコープ内で利用すること
class-methods-use-this クラスメソッド中においてthisが使われていること
complexity 循環的複雑度が規定値(デフォルト20)以内であること
consistent-return returnする型は常に一致させるか全く使わないこと
curly 波括弧の省略を行わないこと
default-case switch文では必ずdefaultケースを作成すること
dot-location 改行前にドットを記述すること
dot-notation オブジェクトプロパティのアクセスは角括弧ではなくドットでアクセスすること
eqeqeq 型を含めた比較演算子を利用すること
guard-for-in for in ループではループしているオブジェクト自身のプロパティかどうかのチェックを行うこと
no-alert alert, prompt, confirm を使わないこと
no-caller arguments.caller, arguments.callee を使用しないこと
no-case-declarations case, default 節の中で 語彙的宣言(let, const, function, class) を行わないこと
no-div-regex 正規表現内の構文で使われる文字列はスラッシュでエスケープすること
no-else-return return を含む if文中 に不要な else 文を作らないこと
no-empty-function 空関数定義を行わないこと
no-empty-pattern 値の入らない分割代入を記述しないこと
no-eq-null null または undefined と比較するときは厳密な比較演算子を利用すること
no-eval eval を使わないこと
no-extend-native ネイティブオブジェクトを拡張しないこと
no-extra-bind 不必要な bind() を行わないこと (アロー関数への適用、thisを含まない関数への適用を禁止)
no-extra-label 不必要なラベル記述を行わないこと
no-fallthrough switch文で下のcaseに流れ落ちるコードを作らないこと
no-floating-decimal 少数を利用するときは数字であることが分かるように表記すること
no-global-assign グローバルオブジェクトや読み取り専用オブジェクトに対する代入を行わないこと
no-implicit-coercion 型変換のショートハンドは利用しないこと
no-implicit-globals グローバルスコープで関数や変数の定義を行わないこと
no-implied-eval 暗黙的 eval() を使用しないこと (setTimeout, setInterval, execScriptにコード文字列を渡さないこと)
no-invalid-this クラスまたはクラスのように扱うオブジェクトの外側で this を使用しないこと
no-iterator _iterator_拡張メソッドは利用しないこと
no-labels ラベル文は使用しないこと
no-lone-blocks 不必要なコードブロックを作らないこと
no-loop-func ループ内においてブロック変数を利用する関数定義を行わないこと
no-magic-numbers マジックナンバーを使用しないこと
no-multi-spaces インデント以外で複数スペースを使用しないこと
no-multi-str 複数行文字列定義を行わないこと
no-new-func Function のコンストラクタに文字列を渡さないこと
no-new-wrappers プリミティブオブジェクトのラッパークラス(String, Number, Boolean)をインスタンス化しないこと
no-new 変数代入を行わないインスタンス生成をしないこと
no-octal-escape 文字列において8進数エスケープは行わないこと
no-octal 8進数表記を使用しないこと
no-param-reassign 関数の引数に対して関数内で値を再定義(代入)しないこと
no-proto __proto__ を使用しないこと
no-redeclare 同じ変数名を再定義しないこと
no-restricted-properties 指定したオブジェクトのプロパティを使用しないこと
no-return-assign return 宣言時に変数代入を行わないこと
no-return-await async function で return await の記載はしないこと
no-script-url JavaScript URL (javascript:で始まるコード) を使用しないこと
no-self-assign 自分自身に再代入しないこと
no-self-compare 自分自身との比較は行わないこと
no-sequences カンマ演算子を使用しないこと
no-throw-literal throwでリテラルを返さないこと
no-unmodified-loop-condition ループ変数はブロック内で変更を行うこと
no-unused-expressions 意味のない式は記述しないこと
no-unused-labels どこからも使われないラベルを作らないこと
no-useless-call 無駄な call(), apply() を行わないこと
no-useless-concat 無駄な文字列結合は行わないこと
no-useless-escape 無駄なエスケープは行わないこと
no-useless-return 無駄な return は書かないこと
no-void undefined を得るために void を使わないこと
no-warning-comments 特定文字列(todo, fixme, xxx)を含むコメントは除去されていること
no-with with 文は使わないこと
radix parseInt() を使用するときは基数を指定すること
require-await 非同期関数では async 文 が含まれていること
vars-on-top 変数定義は該当スコープの先頭でまとめて行うこと
wrap-iife IIFE (immediately invoked function expression) を使用するときは丸括弧で囲むこと
yoda ヨーダ記法で書かないこと

strictモード

strict use strict を記述すること

変数

init-declarations 変数定義時に初期化を行うこと
no-catch-shadow catch句の外側で定義された変数をcatch句のエラー変数にしないこと
no-delete-var 変数宣言したものは delete しないこと
no-label-var 同一スコープ内において変数とラベルに同じ名使わないこと
no-restricted-globals evet など特定のグローバル変数に値代入を行わないこと
no-shadow-restricted-names 予約済みグローバル変数(NaN, Infinity, undefined など)に代入を行わないこと
no-shadow 外側のスコープで定義された変数を隠すような変数定義を行わないこと
no-undef-init 変数定義時に undefined で初期を行わないこと
no-undef 未定義の変数は利用しないこと
no-undefined undefined を使用しないこと
no-unused-vars 未使用の定義(変数、関数)は削除すること
no-use-before-define 定義より前に使用しないこと

Node.js と CommonJS

callback-return callback を利用する場合は return するコードを含めること
global-require require() はそのモジュールの一番最初に記述すること
handle-callback-err callback パターンを記述する際、エラー処理を記載すること
no-mixed-requires require() で定義する変数とその他の変数は分けて宣言すること
no-new-require require() したオブジェクトを直接 new しないこと
no-path-concat __dirname, __filename を直接文字列結合して利用しないこと
no-process-env process.env は使わないこと
no-process-exit process.exit() は使用しないこと
no-restricted-modules 指定したモジュールを使用しないこと
no-sync 非同期メソッドがある場合、同期メソッドは使用しないこと

表記法

array-bracket-spacing 配列を示す角括弧の直ぐ内側に空白を作らないこと
block-spacing 単一行ブロックを使うときはブロックのすぐ内側に空白を入れること
brace-style プレーススタイルは One true brace style (1tbs) で記述すること
camelcase 変数名はキャメルケースで記述すること
capitalized-comments コメントの先頭は大文字で記載すること
comma-dangle オブジェクトまたは配列の最後の要素の後にカンマを書かないこと
comma-spacing カンマ前には空白を入れず、カンマ後には空白を入れること
comma-style 配列、オブジェクト、変数宣言においてカンマは末尾に付けること
computed-property-spacing 算出プロパティの角括弧内に空白を入れないこと
consistent-this this を置き換えて使うときは that に置き換えて使うこと
eol-last ファイルの最後には空行を入れること
func-call-spacing 関数を呼び出す際、関数名と丸括弧の間に空白を入れないこと
func-name-matching 関数を使用する際は定義済みの名前を使用すること
func-names 無名関数は作らないこと
func-style 関数を定義する際は変数代入による定義(function expression)を行うこと
id-blacklist ブラックリストとして定義された名前は利用しないこと
id-length 変数、プロパティ、関数の名称は2文字以上で定義すること
id-match 指定された正規表現に適合する変数名を定義すること
indent インデントは4つの空白文字で行うこと
jsx-quotes jsx中の属性はダブルクゥオートで括って記述すること
key-spacing オブジェクトリテラルにおいてキーとバリューの間に空白を入れること
keyword-spacing JavaScript キーワード の前後には空白を入れること
line-comment-position ラインコメントはコードの真上に記述すること
linebreak-style 改行は LF (line feed) になっていること
lines-around-comment ブロックコメントの前には空行を入れること
lines-around-directive ディレクティブ宣言の後には空行を入れること
max-depth ネストできるブロック深さは4つ以内とすること
max-len 1行80文字以内とすること
max-lines 1ファイル300行以内とすること
max-nested-callbacks ネストできるコールバックは10段以内とすること
max-params 引数のパラメータ数は3個以内とすること
max-statements-per-line 1行1構文とすること
max-statements 1関数は10構文以内で記述すること
multiline-ternary 3項演算子は複数行に分けて記述すること
new-cap new するオブジェクトは大文字始まりのオブジェクトとなっていること
new-parens new で引数なしオブジェクト生成するときは引数なしでも丸括弧を記述すること
newline-after-var 変数宣言の直後には空行を入れること
newline-before-return return の前には空行を入れること
newline-per-chained-call メソッドチェーンを利用する場合、チェーン毎に改行すること
no-array-constructor Array クラスを使った配列値を指定した初期化を行わないこと
no-bitwise ビット演算子は利用しないこと
no-continue continue は使わないこと
no-inline-comments コードと同じ行にコメントを記述しないこと
no-lonely-if else ブロック内に単独の if文 を記述しないこと
no-mixed-operators 複数の演算子グループを括弧なしで混在して記述しないこと
no-mixed-spaces-and-tabs インデントにタブと空白を混在させないこと
no-multiple-empty-lines 3行以上の連続した空行を作らないこと
no-negated-condition else句を持つ if文 は 否定構文 で記述しないこと
no-nested-ternary 3項演算子をネストさせないこと
no-new-object Objectクラスのコンストラクタは利用しないこと
no-plusplus 単項演算子(++, --) は利用しないこと
no-restricted-syntax function宣言やwith句など指定された記述方法は行わないこと
no-tabs タブを使わないこと
no-ternary 3項演算子を使わないこと
no-trailing-spaces 行末に不要な空白を残さないこと
no-underscore-dangle アンダースコアで始まる変数を作らないこと
no-unneeded-ternary 変数初期化で無駄な3項演算子を使わないこと
no-whitespace-before-property ドット演算子または角括弧を使って1行内でオブジェクトアクセスするときは空白を入れないこと
object-curly-newline オブジェクト定義を行う波括弧は必ず改行して記述すること
object-curly-spacing 波括弧を使って1行でオブジェクト定義する際、波括弧の前後に空白を入れないこと
object-property-newline 波括弧を使ってオブジェクト定義をする際、プロパティ毎に改行すること
one-var-declaration-per-line 定数定義は定数毎に改行すること
one-var ブロックスコープ内では1度の宣言で必要な変数宣言を行うこと
operator-assignment ショートハンドが使える場合はショートハンドで記載すること
operator-linebreak 式を記述する際、演算子は行末または行頭のどちらかに統一して記述すること
padded-blocks ブロックスコープの最初と最後に空行を入れること
quote-props オブジェクトのリテラルプロパティは常にクォートで囲むこと
quotes 文字列はダブルクォートで記述すること
require-jsdoc JSDocコメントを記述すること
semi-spacing セミコロンの前と後に空白を入れること
semi 文末にはセミコロンを記述すること
sort-keys オブジェクトプロパティはアルファベット順に並べて記述すること
sort-vars 同一ブロック内の変数宣言はアルファベット順に並べて記述すること
space-before-blocks ブロック開始前には空白を入れること
space-before-function-paren 関数宣言の丸括弧前には空白を入れること
space-in-parens 丸括弧の内側には空白を入れるまたは入れない
space-infix-ops 中置演算子の前後には空白を入れること
space-unary-ops 文字列の単項演算子後には空白を入れ、記号の単項演算子の前または後ろには空白を入れないこと
spaced-comment コメントの先頭には空白を入れること
unicode-bom ユニコードのBOMは入れないこと
wrap-regex リテラルの正規表現は丸括弧で囲って使用すること

ECMAScript 6

arrow-body-style アロー関数の波括弧は必要に応じて記載すること
arrow-parens アロー関数の引数部分には丸括弧を記述すること
arrow-spacing アロー関数の矢印前後には空白を入れること
constructor-super 継承しているクラスのコンストラクタではsuper()を呼び出しており、継承していないクラスのコンストラクタではsuper()を呼び出していないこと
generator-star-spacing ジェネレータ関数を示す * の前には空白を入れ、後には空白を入れないこと
no-class-assign 定義したクラス名を変数として再利用する場合、同一行にコメントすること
no-confusing-arrow 1行でアロー関数を定義する時は関数ブロックが分かるよう丸括弧で括ること
no-const-assign const 定義された変数の再定義を行わないこと
no-dupe-class-members クラスメンバーの名前は重複させないこと
no-duplicate-imports 単一モジュールから import する際、必要な import は1行で書ききること
no-new-symbol Symbolオブジェクトを new で生成しないこと
no-restricted-imports 指定されたモジュールの import は行わないこと
no-this-before-super super() を呼び出す前に this または super を使わないこと
no-useless-computed-key 不要な算術プロパティ表記は行わないこと
no-useless-constructor 何もしないコンストラクタ または 親クラスのコンストラクタを呼び出すだけのコンストラクタ は記述しないこと
no-useless-rename import, export, 分割代入において変数名を変更しないこと
no-var var (メソットスコープ変数) は使わず let または const (ブロックスコープ変数) を使うこと
object-shorthand オブジェクト定義時にショートハンドが利用できる場合は利用すること
prefer-arrow-callback コールバックにはアロー関数を利用すること
prefer-const 再代入を行わない変数は const を利用すること
prefer-numeric-literals parseInt() を文字列と基数を指定して利用しないこと
prefer-rest-params arguments の代わりに 残余引数 を利用すること
prefer-spread Function.prototype.apply() の代わりに スプレッド演算子 が利用すること
prefer-template 文字列結合の代わりにテンプレートリテラルが利用すること
require-yield ジェネレータ関数には yield を含めること
rest-spread-spacing 残余引数とスプレッド演算子を記述するときはその演算子と表記の間に空白を入れないこと
sort-imports import はアルファベット順にソートすること
symbol-description Symbolを生成するときは名称指定すること
template-curly-spacing テンプレートリテラルで利用する波括弧の内側には空白を入れないこと
yield-star-spacing yield* の * の前には空白を入れず後には空白を入れること

参考記事