版本

規則參考

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

建議

設定檔中使用來自 @eslint/jsrecommended 設定會啟用此規則

🔧 可修正

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

💡 有建議

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

❄️ 凍結

此規則目前處於凍結狀態,不接受功能請求。

可能的問題

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

強制陣列方法的 callbacks 中使用 return 陳述式

類別

💡 建議

在 constructors 中要求 super() 呼叫

類別

擴充

強制 for 迴圈更新子句朝正確方向移動計數器

類別

擴充

強制 getters 中使用 return 陳述式

類別

擴充

不允許在迴圈內使用 await

類別

不允許重新指派類別成員

類別

擴充

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

類別

擴充

不允許重新指派 const 變數

類別

擴充

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

類別

擴充

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

類別

擴充

不允許使用 debugger

類別

擴充

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

類別

擴充

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

類別

擴充

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

類別

擴充

不允許重複的 case 標籤

類別

擴充

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

類別

擴充

不允許空的解構模式

類別

擴充

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

類別

擴充

不允許 case 陳述式貫穿

類別

擴充

不允許重新指派 function 宣告

類別

擴充

不允許指派給匯入的綁定

類別

擴充

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

類別

不允許在 RegExp constructors 中使用無效的正規表示式字串

類別

擴充

不允許失去精確度的字面數字

類別

擴充

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

類別

擴充

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

類別

擴充

💡 建議

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

類別

擴充

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

類別

不允許從 setters 返回值

類別

擴充

不允許稀疏陣列

類別

擴充

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

類別

擴充

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

類別

擴充

不允許在 returnthrowcontinuebreak 陳述式之後出現無法到達的程式碼

類別

擴充

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

類別

不允許在 finally 區塊中使用控制流程陳述式

類別

擴充

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

類別

擴充

💡 建議

不允許未使用的變數

類別

擴充

💡 建議

不允許在變數定義之前使用變數

類別

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

類別

擴充

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

類別

在檢查 NaN 時要求呼叫 isNaN()

類別

擴充

💡 建議

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

類別

擴充

💡 建議

建議

這些規則建議其他做事方式

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

類別
arrow-body-style

❄️ 凍結

要求在箭頭函數主體周圍加上大括號

類別

🔧 修正

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

類別
camelcase

❄️ 凍結

強制駝峰式命名慣例

類別
capitalized-comments

❄️ 凍結

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

類別

🔧 修正

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

類別

要求 return 陳述式始終或永不指定值

類別
consistent-this

❄️ 凍結

強制在捕獲當前執行上下文時使用一致的命名

類別
curly

❄️ 凍結

強制所有控制陳述式使用一致的大括號樣式

類別

🔧 修正

switch 陳述式中要求 default case

類別

強制 switch 陳述式中的 default 子句位於最後

類別
default-param-last

❄️ 凍結

強制預設參數位於最後

類別
dot-notation

❄️ 凍結

盡可能強制使用點號表示法

類別

🔧 修正

要求使用 ===!==

類別

🔧 修正

func-name-matching

❄️ 凍結

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

類別

要求或不允許命名的 function 表達式

類別
func-style

❄️ 凍結

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

類別

要求物件實字和類別中使用分組的 accessor 對

類別

要求 for-in 迴圈包含 if 陳述式

類別
id-denylist

❄️ 凍結

不允許指定的識別符

類別
id-length

❄️ 凍結

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

類別
id-match

❄️ 凍結

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

類別
init-declarations

❄️ 凍結

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

類別

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

類別

強制每個檔案的最大行數

類別

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

類別

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

類別

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

類別

要求 constructor 名稱以大寫字母開頭

類別

不允許使用 alertconfirmprompt

類別

不允許位元運算子

類別

不允許使用 arguments.callerarguments.callee

類別

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

類別

擴充

💡 建議

不允許使用 console

類別

💡 建議

no-continue

❄️ 凍結

不允許 continue 陳述式

類別

不允許刪除變數

類別

擴充

no-div-regex

❄️ 凍結

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

類別

🔧 修正

no-else-return

❄️ 凍結

if 陳述式中的 return 陳述式之後不允許 else 區塊

類別

🔧 修正

不允許空的區塊陳述式

類別

擴充

💡 建議

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

類別

不允許使用 eval()

類別

不允許擴充原生類型

類別

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

類別

🔧 修正

no-extra-boolean-cast

❄️ 凍結

不允許不必要的布林轉換

類別

擴充

🔧 修正

no-extra-label

❄️ 凍結

不允許不必要的標籤

類別

🔧 修正

不允許指派給原生物件或唯讀全域變數

類別

擴充

no-implicit-coercion

❄️ 凍結

不允許簡寫類型轉換

類別

🔧 修正

💡 建議

不允許在全域範圍中宣告

類別

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

類別
no-inline-comments

❄️ 凍結

不允許在程式碼後面的行內註解

類別

this 的值為 undefined 的上下文中不允許使用 this

類別

不允許使用 __iterator__ 屬性

類別
no-label-var

❄️ 凍結

不允許與變數共用名稱的標籤

類別
no-labels

❄️ 凍結

不允許標記陳述式

類別

不允許不必要的巢狀區塊

類別
no-lonely-if

❄️ 凍結

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

類別

🔧 修正

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

類別
no-magic-numbers

❄️ 凍結

不允許魔術數字

類別

不允許使用鏈式指派表達式

類別
no-multi-str

❄️ 凍結

不允許多行字串

類別
no-nested-ternary

❄️ 凍結

不允許巢狀三元表達式

類別

不允許在指派或比較之外使用 new 運算子

類別

不允許對 Function 物件使用 new 運算子

類別

不允許對 StringNumberBoolean 物件使用 new 運算子

類別

不允許在字串字面值中使用 \8\9 逸出序列

類別

擴充

💡 建議

不允許在沒有參數的情況下呼叫 Object constructor

類別

💡 建議

不允許八進位字面值

類別

擴充

不允許在字串字面值中使用八進位逸出序列

類別

不允許重新指派函數參數

類別
no-plusplus

❄️ 凍結

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

類別

不允許使用 __proto__ 屬性

類別

不允許變數重複宣告

類別

擴充

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

類別

擴充

🔧 修正

不允許透過 import 載入指定的模組

類別

不允許在 return 陳述式中使用指派運算子

類別

不允許 javascript: URLs

類別

不允許逗號運算子

類別

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

類別
no-ternary

❄️ 凍結

不允許三元運算子

類別

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

類別
no-undef-init

❄️ 凍結

不允許將變數初始化為 undefined

類別

🔧 修正

no-undefined

❄️ 凍結

不允許將 undefined 用作識別符

類別
no-underscore-dangle

❄️ 凍結

不允許在識別符中使用懸空底線

類別
no-unneeded-ternary

❄️ 凍結

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

類別

🔧 修正

不允許未使用的標籤

類別

擴充

🔧 修正

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

類別

不允許不必要的 catch 子句

類別

擴充

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

類別

🔧 修正

no-useless-concat

❄️ 凍結

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

類別

不允許不必要的逸出字元

類別

擴充

💡 建議

不允許將匯入、匯出和解構指派重新命名為相同的名稱

類別

🔧 修正

不允許多餘的 return 陳述式

類別

🔧 修正

要求使用 letconst 而非 var

類別

🔧 修正

no-void

❄️ 凍結

不允許 void 運算子

類別
no-warning-comments

❄️ 凍結

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

類別

不允許 with 陳述式

類別

擴充

object-shorthand

❄️ 凍結

要求或不允許物件實字的方法和屬性簡寫語法

類別

🔧 修正

one-var

❄️ 凍結

強制變數在函數中一起或分開宣告

類別

🔧 修正

operator-assignment

❄️ 凍結

在可能的情況下,要求或不允許指派運算子簡寫

類別

🔧 修正

prefer-arrow-callback

❄️ 凍結

要求對 callbacks 使用箭頭函數

類別

🔧 修正

對於宣告後永遠不會重新指派的變數,要求使用 const 宣告

類別

🔧 修正

prefer-destructuring

❄️ 凍結

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

類別

🔧 修正

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

類別

🔧 修正

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

類別

🔧 修正

prefer-object-spread

❄️ 凍結

不允許將 Object.assign 與物件實字作為第一個參數使用,而傾向於使用物件展開運算符

類別

🔧 修正

不允許使用 RegExp constructor,而傾向於使用正規表示式字面值

類別

💡 建議

要求使用 rest 參數而不是 arguments

類別
prefer-spread

❄️ 凍結

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

類別
prefer-template

❄️ 凍結

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

類別

🔧 修正

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

類別

💡 建議

不允許沒有 await 表達式的 async 函數

類別

💡 建議

強制在正規表示式上使用 uv 標誌

類別

💡 建議

要求 generator 函數包含 yield

類別

擴充

sort-imports

❄️ 凍結

強制模組內排序的 import 宣告

類別

🔧 修正

sort-keys

❄️ 凍結

要求物件鍵排序

類別
sort-vars

❄️ 凍結

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

類別

🔧 修正

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

類別

🔧 修正

vars-on-top

❄️ 凍結

要求 var 宣告放置在其包含範圍的頂部

類別
yoda

❄️ 凍結

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

類別

🔧 修正

版面配置 & 格式設定

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

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

類別

🔧 修正

已棄用

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

id-blacklist 已棄用

已由 id-denylist 取代

類別

no-catch-shadow 已棄用

已由 no-shadow 取代

類別

no-native-reassign 已棄用

已由 no-global-assign 取代

類別

no-negated-in-lhs 已棄用

已由 no-unsafe-negation 取代

類別

no-return-await 已棄用

類別

💡 建議

prefer-reflect 已棄用

類別

已移除

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

global-strict 已移除

已由 strict 取代

no-empty-label 已移除

已由 no-labels 取代

no-extra-strict 已移除

已由 strict 取代

valid-jsdoc 已移除

require-jsdoc 已移除

變更語言