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* の * の前には空白を入れず後には空白を入れること |
参考記事
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!