版本

規則參考

ESLint 中的規則按類型分組,以幫助您了解它們的目的。每個規則都有表情符號表示

建議

組態檔中使用 @eslint/jsrecommended 配置會啟用此規則

🔧 可修正

此規則報告的一些問題可透過 --fix 命令列選項自動修正

💡 有建議

此規則報告的一些問題可透過編輯器建議手動修正

可能的問題

這些規則與程式碼中可能存在的邏輯錯誤相關

array-callback-return

在陣列方法的 callback 中強制使用 return 語句

類別

💡 建議

constructor-super

要求在建構子中使用 super() 呼叫

類別

擴充

for-direction

強制「for」迴圈更新子句以正確的方向移動計數器

類別

擴充

getter-return

強制在 getter 中使用 return 語句

類別

擴充

no-await-in-loop

不允許在迴圈內使用 await

類別
no-class-assign

不允許重新指派類別成員

類別

擴充

no-cond-assign

不允許在條件表達式中使用指派運算子

類別

擴充

no-const-assign

不允許重新指派 const 變數

類別

擴充

no-constant-condition

不允許在條件中使用常數表達式

類別

擴充

no-control-regex

不允許在正規表達式中使用控制字元

類別

擴充

no-debugger

不允許使用 debugger

類別

擴充

no-dupe-args

不允許在 function 定義中使用重複的引數

類別

擴充

no-dupe-else-if

不允許在 if-else-if 鏈中使用重複的條件

類別

擴充

no-dupe-keys

不允許在物件字面值中使用重複的鍵

類別

擴充

no-duplicate-case

不允許重複的 case 標籤

類別

擴充

no-empty-character-class

不允許在正規表達式中使用空的字元類別

類別

擴充

no-empty-pattern

不允許空的解構模式

類別

擴充

no-ex-assign

不允許在 catch 子句中重新指派例外

類別

擴充

no-fallthrough

不允許 case 語句的貫穿

類別

擴充

no-func-assign

不允許重新指派 function 宣告

類別

擴充

no-import-assign

不允許指派給匯入的綁定

類別

擴充

no-inner-declarations

不允許在巢狀區塊中使用變數或 function 宣告

類別
no-invalid-regexp

不允許在 RegExp 建構子中使用無效的正規表達式字串

類別

擴充

no-loss-of-precision

不允許遺失精度的數字字面值

類別

擴充

no-misleading-character-class

不允許在字元類別語法中使用由多個程式碼點組成的字元

類別

擴充

💡 建議

no-obj-calls

不允許將全域物件屬性作為函式呼叫

類別

擴充

no-prototype-builtins

不允許直接在物件上呼叫某些 Object.prototype 方法

類別

擴充

💡 建議

no-self-assign

不允許兩邊完全相同的指派

類別

擴充

no-self-compare

不允許兩邊完全相同的比較

類別
no-setter-return

不允許從 setter 傳回值

類別

擴充

no-sparse-arrays

不允許稀疏陣列

類別

擴充

no-this-before-super

不允許在建構子中呼叫 super() 之前使用 this/super

類別

擴充

no-undef

不允許使用未宣告的變數,除非在 /*global */ 註解中提及

類別

擴充

no-unreachable

不允許在 returnthrowcontinuebreak 語句之後使用無法到達的程式碼

類別

擴充

no-unreachable-loop

不允許主體只允許一次迭代的迴圈

類別
no-unsafe-finally

不允許在 finally 區塊中使用控制流程語句

類別

擴充

no-unsafe-negation

不允許否定關係運算子的左運算元

類別

擴充

💡 建議

no-unsafe-optional-chaining

不允許在不允許 undefined 值的情況下使用選擇性鏈結

類別

擴充

no-unused-vars

不允許未使用的變數

類別

擴充

no-useless-backreference

不允許在正規表達式中使用無用的反向參照

類別

擴充

require-atomic-updates

不允許由於使用 awaityield 而可能導致競爭條件的指派

類別
use-isnan

檢查 NaN 時需要呼叫 isNaN()

類別

擴充

💡 建議

valid-typeof

強制將 typeof 表達式與有效的字串進行比較

類別

擴充

💡 建議

建議

這些規則建議做事的替代方法

accessor-pairs

在物件和類別中強制使用 getter 和 setter 配對

類別
arrow-body-style

要求在箭頭函式主體周圍使用大括號

類別

🔧 修正

block-scoped-var

強制在定義的範圍內使用變數

類別
camelcase

強制使用 camelcase 命名慣例

類別
capitalized-comments

強制或不允許註解第一個字母的大寫

類別

🔧 修正

complexity

強制程式中允許的最大循環複雜度

類別
consistent-return

要求 return 語句始終或從不指定值

類別
consistent-this

強制在捕獲目前執行內容時使用一致的命名

類別
curly

強制所有控制語句使用一致的大括號樣式

類別

🔧 修正

default-case

要求在 switch 語句中使用 default case

類別
default-case-last

強制 switch 語句中的 default 子句放在最後

類別
default-param-last

強制將預設參數放在最後

類別
dot-notation

盡可能強制使用點表示法

類別

🔧 修正

eqeqeq

要求使用 ===!==

類別

🔧 修正

func-name-matching

要求函式名稱與指派給它們的變數或屬性名稱相符

類別
func-names

要求或不允許使用具名的 function 表達式

類別
func-style

強制一致使用 function 宣告或指派給變數的表達式

類別
grouped-accessor-pairs

要求在物件字面值和類別中使用分組的存取子配對

類別
guard-for-in

要求 for-in 迴圈包含 if 語句

類別
id-denylist

不允許指定的識別符號

類別
id-length

強制最小和最大識別符號長度

類別
id-match

要求識別符號與指定的正規表達式相符

類別
init-declarations

要求或不允許在變數宣告中初始化

類別
max-depth

強制可以巢狀區塊的最大深度

類別
max-lines

強制每個檔案的最大行數

類別
max-nested-callbacks

強制可以巢狀回呼的最大深度

類別
max-params

強制函式定義中參數的最大數量

類別
max-statements

強制函數區塊中允許的最大陳述式數量

類別
new-cap

要求建構子名稱以大寫字母開頭

類別
no-alert

不允許使用 alertconfirmprompt

類別
no-bitwise

不允許使用位元運算子

類別
no-caller

不允許使用 arguments.callerarguments.callee

類別
no-case-declarations

不允許在 case 子句中使用詞法宣告

類別

擴充

💡 建議

no-console

不允許使用 console

類別

💡 建議

no-continue

不允許使用 continue 陳述式

類別
no-delete-var

不允許刪除變數

類別

擴充

no-div-regex

不允許在正規表示式的開頭明確使用等號

類別

🔧 修正

no-else-return

不允許在 if 陳述式中,return 陳述式後方使用 else 區塊

類別

🔧 修正

no-empty

不允許空的區塊陳述式

類別

擴充

💡 建議

no-eq-null

不允許在沒有類型檢查運算子的情況下比較 null

類別
no-eval

不允許使用 eval()

類別
no-extend-native

不允許擴展原生類型

類別
no-extra-bind

不允許不必要地呼叫 .bind()

類別

🔧 修正

no-extra-label

不允許不必要的標籤

類別

🔧 修正

no-global-assign

不允許賦值給原生物件或唯讀全域變數

類別

擴充

no-implicit-globals

不允許在全域範圍中宣告變數

類別
no-implied-eval

不允許使用類似 eval() 的方法

類別
no-inline-comments

不允許在程式碼後方使用行內註解

類別
no-invalid-this

不允許在 this 的值為 undefined 的情況下使用 this

類別
no-iterator

不允許使用 __iterator__ 屬性

類別
no-label-var

不允許標籤與變數同名

類別
no-labels

不允許使用帶標籤的陳述式

類別
no-lone-blocks

不允許不必要的巢狀區塊

類別
no-lonely-if

不允許 if 陳述式作為 else 區塊中的唯一陳述式

類別

🔧 修正

no-loop-func

不允許在迴圈陳述式內包含不安全參考的函數宣告

類別
no-magic-numbers

不允許使用魔術數字

類別
no-multi-assign

不允許使用鏈式賦值運算式

類別
no-multi-str

不允許多行字串

類別
no-nested-ternary

不允許巢狀的三元運算式

類別
no-new

不允許在賦值或比較之外使用 new 運算子

類別
no-new-func

不允許將 new 運算子與 Function 物件一起使用

類別
no-new-wrappers

不允許將 new 運算子與 StringNumberBoolean 物件一起使用

類別
no-object-constructor

不允許在沒有引數的情況下呼叫 Object 建構子

類別

💡 建議

no-octal

不允許八進位字面值

類別

擴充

no-octal-escape

不允許在字串文字中使用八進位跳脫序列

類別
no-param-reassign

不允許重新賦值 function 參數

類別
no-plusplus

不允許使用一元運算子 ++--

類別
no-proto

不允許使用 __proto__ 屬性

類別
no-redeclare

不允許重複宣告變數

類別

擴充

no-regex-spaces

不允許在正規表示式中使用多個空格

類別

擴充

🔧 修正

no-restricted-exports

不允許在 exports 中使用指定的名稱

類別
no-restricted-imports

不允許使用 import 載入時指定的模組

類別
no-return-assign

不允許在 return 陳述式中使用賦值運算子

類別
no-script-url

不允許使用 javascript: URLs

類別
no-sequences

不允許使用逗號運算子

類別
no-shadow

不允許變數宣告遮蔽外部範圍中宣告的變數

類別
no-ternary

不允許使用三元運算子

類別
no-throw-literal

不允許將字面值作為例外拋出

類別
no-undef-init

不允許將變數初始化為 undefined

類別

🔧 修正

no-undefined

不允許使用 undefined 作為識別符號

類別
no-underscore-dangle

不允許在識別符號中使用尾隨底線

類別
no-unneeded-ternary

當存在更簡單的替代方案時,不允許使用三元運算子

類別

🔧 修正

no-unused-labels

不允許未使用的標籤

類別

擴充

🔧 修正

no-useless-call

不允許不必要地呼叫 .call().apply()

類別
no-useless-catch

不允許不必要的 catch 子句

類別

擴充

no-useless-computed-key

不允許在物件和類別中使用不必要的計算屬性鍵

類別

🔧 修正

no-useless-concat

不允許不必要地串連字面值或模板字面值

類別
no-useless-escape

不允許不必要的跳脫字元

類別

擴充

💡 建議

no-useless-rename

不允許將 import、export 和解構賦值重新命名為相同名稱

類別

🔧 修正

no-useless-return

不允許多餘的 return 陳述式

類別

🔧 修正

no-var

要求使用 letconst 而不是 var

類別

🔧 修正

no-void

不允許使用 void 運算子

類別
no-warning-comments

不允許在註解中使用指定的警告詞

類別
no-with

不允許使用 with 陳述式

類別

擴充

object-shorthand

要求或不允許物件字面值的函式和屬性簡寫語法

類別

🔧 修正

one-var

強制在函數中一起或單獨宣告變數

類別

🔧 修正

operator-assignment

要求或不允許在可能的情況下使用賦值運算子簡寫

類別

🔧 修正

prefer-const

要求對宣告後永遠不會重新賦值的變數使用 const 宣告

類別

🔧 修正

prefer-destructuring

要求從陣列和/或物件進行解構

類別

🔧 修正

prefer-numeric-literals

不允許使用 parseInt()Number.parseInt(),而傾向使用二進位、八進位和十六進位字面值

類別

🔧 修正

prefer-object-has-own

不允許使用 Object.prototype.hasOwnProperty.call(),並傾向使用 Object.hasOwn()

類別

🔧 修正

prefer-object-spread

不允許將 Object.assign 與物件字面值作為第一個引數一起使用,並傾向改用物件展開

類別

🔧 修正

prefer-regex-literals

不允許使用 RegExp 建構子,而傾向使用正規表示式字面值

類別

💡 建議

prefer-rest-params

要求使用 rest 參數而不是 arguments

類別
prefer-spread

要求使用展開運算子而不是 .apply()

類別
prefer-template

要求使用模板字面值而不是字串串連

類別

🔧 修正

radix

強制在使用 parseInt() 時一致地使用 radix 引數

類別

💡 建議

require-await

不允許沒有 await 運算式的 async 函數

類別

💡 建議

require-yield

要求生成器函數包含 yield

類別

擴充

sort-imports

強制在模組內對 import 宣告進行排序

類別

🔧 修正

sort-keys

要求對物件鍵進行排序

類別
sort-vars

要求在同一個宣告區塊內的變數進行排序

類別

🔧 修正

strict

要求或不允許使用嚴格模式指令

類別

🔧 修正

vars-on-top

要求將 var 宣告放置在它們所屬範圍的頂部

類別
yoda

要求或不允許使用「尤達」條件

類別

🔧 修正

版面配置與格式

這些規則關心程式碼的外觀,而不是執行方式

unicode-bom

要求或不允許 Unicode 位元組順序記號 (BOM)

類別

🔧 修正

已棄用

根據 棄用政策,這些規則已被棄用,並由較新的規則取代

array-bracket-newline 已棄用

類別

🔧 修正

array-bracket-spacing 已棄用

類別

🔧 修正

array-element-newline 已棄用

類別

🔧 修正

arrow-parens 已棄用

類別

🔧 修正

arrow-spacing 已棄用

類別

🔧 修正

block-spacing 已棄用

類別

🔧 修正

brace-style 已棄用

類別

🔧 修正

callback-return 已棄用

類別

comma-dangle 已棄用

類別

🔧 修正

comma-spacing 已棄用

類別

🔧 修正

comma-style 已棄用

類別

🔧 修正

computed-property-spacing 已棄用

類別

🔧 修正

dot-location 已棄用

類別

🔧 修正

eol-last 已棄用

類別

🔧 修正

func-call-spacing 已棄用

類別

🔧 修正

function-call-argument-newline 已棄用

類別

🔧 修正

function-paren-newline 已棄用

類別

🔧 修正

generator-star-spacing 已棄用

類別

🔧 修正

global-require 已棄用

類別

handle-callback-err 已棄用

類別

id-blacklist 已棄用

id-denylist 取代

類別

implicit-arrow-linebreak 已棄用

類別

🔧 修正

indent 已棄用

類別

🔧 修正

indent-legacy 已棄用

indent 取代

類別

🔧 修正

jsx-quotes 已棄用

類別

🔧 修正

key-spacing 已棄用

類別

🔧 修正

keyword-spacing 已棄用

類別

🔧 修正

line-comment-position 已棄用

類別

linebreak-style 已棄用

類別

🔧 修正

lines-around-comment 已棄用

類別

🔧 修正

lines-between-class-members 已棄用

類別

🔧 修正

max-len 已棄用

類別

max-statements-per-line 已棄用

類別

multiline-comment-style 已棄用

類別

🔧 修正

multiline-ternary 已棄用

類別

🔧 修正

new-parens 已棄用

類別

🔧 修正

newline-per-chained-call 已棄用

類別

🔧 修正

no-buffer-constructor 已棄用

類別

no-catch-shadow 已棄用

已由 no-shadow 取代

類別

no-confusing-arrow 已棄用

類別

🔧 修正

no-extra-parens 已棄用

類別

🔧 修正

no-extra-semi 已棄用

類別

🔧 修正

no-floating-decimal 已棄用

類別

🔧 修正

no-mixed-operators 已棄用

類別

no-mixed-requires 已棄用

類別

no-mixed-spaces-and-tabs 已棄用

類別

no-multi-spaces 已棄用

類別

🔧 修正

no-multiple-empty-lines 已棄用

類別

🔧 修正

no-native-reassign 已棄用

已由 no-global-assign 取代

類別

no-negated-in-lhs 已棄用

已由 no-unsafe-negation 取代

類別

no-new-require 已棄用

類別

no-path-concat 已棄用

類別

no-process-env 已棄用

類別

no-process-exit 已棄用

類別

no-restricted-modules 已棄用

類別

no-return-await 已棄用

類別

💡 建議

no-spaced-func 已棄用

已由 func-call-spacing 取代

類別

🔧 修正

no-sync 已棄用

類別

no-tabs 已棄用

類別

no-trailing-spaces 已棄用

類別

🔧 修正

no-whitespace-before-property 已棄用

類別

🔧 修正

nonblock-statement-body-position 已棄用

類別

🔧 修正

object-curly-newline 已棄用

類別

🔧 修正

object-curly-spacing 已棄用

類別

🔧 修正

object-property-newline 已棄用

類別

🔧 修正

one-var-declaration-per-line 已棄用

類別

🔧 修正

operator-linebreak 已棄用

類別

🔧 修正

padded-blocks 已棄用

類別

🔧 修正

padding-line-between-statements 已棄用

類別

🔧 修正

prefer-reflect 已棄用

類別

quote-props 已棄用

類別

🔧 修正

quotes 已棄用

類別

🔧 修正

rest-spread-spacing 已棄用

類別

🔧 修正

semi 已棄用

類別

🔧 修正

semi-spacing 已棄用

類別

🔧 修正

semi-style 已棄用

類別

🔧 修正

space-before-blocks 已棄用

類別

🔧 修正

space-before-function-paren 已棄用

類別

🔧 修正

space-in-parens 已棄用

類別

🔧 修正

space-infix-ops 已棄用

類別

🔧 修正

space-unary-ops 已棄用

類別

🔧 修正

spaced-comment 已棄用

類別

🔧 修正

switch-colon-spacing 已棄用

類別

🔧 修正

template-curly-spacing 已棄用

類別

🔧 修正

template-tag-spacing 已棄用

類別

🔧 修正

wrap-iife 已棄用

類別

🔧 修正

wrap-regex 已棄用

類別

🔧 修正

yield-star-spacing 已棄用

類別

🔧 修正

已移除

這些來自舊版 ESLint 的規則(在 棄用政策 存在之前)已被較新的規則取代

global-strict 已移除

已由 strict 取代

no-empty-label 已移除

已由 no-labels 取代

no-extra-strict 已移除

已由 strict 取代

valid-jsdoc 已移除

已由

require-jsdoc 已移除

已由

變更語言