ESLint
規(guī)則
ESLint中的規(guī)則按類別分組,以幫助您了解它們的用途。
默認情況下未啟用任何規(guī)則。配置文件中的"extends": "eslint:recommended"屬性啟用報告常見問題的規(guī)則寝姿,這些規(guī)則帶有復(fù)選標記 以下。
在--fix上選項命令行受到有扳手規(guī)則報告自動修復(fù)問題(空格目前大部分) 以下划滋。
可能的錯誤
這些規(guī)則與JavaScript代碼中可能的語法或邏輯錯誤有關(guān):
for-direction 強制執(zhí)行“ for”循環(huán)更新子句饵筑,以正確的方向移動計數(shù)器。
getter-return 在吸氣劑中執(zhí)行return
語句
no-async-promise-executor 禁止將異步功能用作Promise執(zhí)行器
no-await-in-loop 在循環(huán)內(nèi)禁止await
no-compare-neg-zero 不允許與-0比較
no-cond-assign 禁止條件表達式中的賦值運算符
no-console 禁止使用“控制臺”
no-constant-condition 禁止條件中的常量表達式
no-control-regex 禁止在正則表達式中使用控制字符
no-debugger 禁止使用debugger
no-dupe-args 禁止在function
定義中重復(fù)參數(shù)
no-dupe-else-if 在if-else-if鏈中禁止重復(fù)條件
no-dupe-keys 禁止在對象文字中使用重復(fù)鍵
no-duplicate-case 禁止重復(fù)的案例標簽
no-empty 禁止空塊語句
no-empty-character-class 禁止在正則表達式中使用空字符類
no-ex-assign 禁止在catch
子句中重新分配異常
no-extra-boolean-cast 禁止不必要的布爾類型轉(zhuǎn)換
no-extra-parens 禁止不必要的括號
no-extra-semi 禁止不必要的分號
no-func-assign 禁止重新分配function
聲明
no-import-assign 禁止分配給導(dǎo)入的綁定
no-inner-declarations 禁止在嵌套塊中使用變量或函數(shù)聲明
no-invalid-regexp 禁止在RegExp構(gòu)造函數(shù)中使用無效的正則表達式字符串
no-irregular-whitespace 禁止不規(guī)則空格
no-loss-of-precision 禁止丟失精度的文字數(shù)字
no-misleading-character-class 禁止使用字符類語法中由多個代碼點組成的字符
no-obj-calls 禁止將全局對象屬性作為函數(shù)調(diào)用
no-promise-executor-return 禁止從Promise執(zhí)行器函數(shù)返回值
no-prototype-builtins 不允許直接在對象上調(diào)用某些Object.prototype方法
no-regex-spaces 禁止在正則表達式中使用多個空格
no-setter-return 禁止從設(shè)置器返回值
no-sparse-arrays 禁止稀疏數(shù)組
no-template-curly-in-string 禁止在常規(guī)字符串中使用模板文字占位符語法
no-unexpected-multiline 禁止混淆多行表達式
no-unreachable 在return
处坪,throw
根资,continue
和break
語句之后禁止不可訪問的代碼
no-unreachable-loop 不允許僅允許一次迭代的主體進行循環(huán)
no-unsafe-finally 禁止在“ finally”塊中使用控制流語句
no-unsafe-negation 不允許否定關(guān)系運算符的左操作數(shù)
no-unsafe-optional-chaining 禁止在不允許使用“ undefined”值的情況下使用可選鏈接
no-useless-backreference 禁止在正則表達式中使用無用的反向引用
require-atomic-updates 禁止由于使用“ await”或“ yield”而導(dǎo)致比賽狀態(tài)的作業(yè)
use-isnan 在檢查“ NaN”時需要調(diào)用“ isNaN()”
valid-typeof 強制將“ typeof”表達式與有效字符串進行比較
最佳實踐
這些規(guī)則與更好的處事方式有關(guān)架专,可幫助您避免出現(xiàn)問題:
accessor-pairs 在對象和類中強制執(zhí)行g(shù)etter和setter對
array-callback-return 在數(shù)組方法的回調(diào)中強制執(zhí)行“ return”語句
block-scoped-var 在定義變量的范圍內(nèi)強制使用變量
class-methods-use-this 強制類方法使用this
complexity 強制執(zhí)行程序中允許的最大圈復(fù)雜度
consistent-return 要求return
語句始終或永不指定值
curly 對所有控制語句強制使用一致的花括號樣式
default-case 在switch
語句中需要default
的情況
default-case-last 將switch語句中的默認子句強制為最后
default-param-last 強制默認參數(shù)為最后
dot-location 在點之前和之后強制執(zhí)行一致的換行符
dot-notation 盡可能執(zhí)行點符號
eqeqeq 要求使用===
和!==
grouped-accessor-pairs 需要對象文字和類中的分組訪問器對
guard-for-in 需要for-in
循環(huán)來包含if
語句
max-classes-per-file 在每個文件中強制使用最大數(shù)量的類
no-alert 禁止使用“警告”嫂冻,“確認”和“提示”
no-caller 禁止使用arguments.caller
或arguments.callee
no-case-declarations 禁止在case子句中進行詞匯聲明
no-constructor-return 禁止從構(gòu)造函數(shù)返回值
no-div-regex 在正則表達式的開頭明確禁止除法運算符
no-else-return 禁止在if語句中的return語句后使用else塊
no-empty-function 禁止空函數(shù)
no-empty-pattern 禁止使用空的銷毀模式
no-eq-null 禁止在沒有類型檢查運算符的情況下進行“ null”比較
no-eval 禁止使用eval()
no-extend-native 禁止擴展本機類型
no-extra-bind 禁止不必要地調(diào)用.bind()
no-extra-label 禁止不必要的標簽
no-fallthrough 禁止case
語句失敗
no-floating-decimal 禁止數(shù)字文字中的前導(dǎo)或尾隨小數(shù)點
no-global-assign 禁止分配給本機對象或只讀全局變量
no-implicit-coercion 禁止速記類型轉(zhuǎn)換
no-implicit-globals 禁止在全球范圍內(nèi)聲明
no-implied-eval 禁止使用類似eval()
的方法
no-invalid-this 在類或類對象之外禁止this
關(guān)鍵字
no-iterator 禁止使用__iterator__
屬性
no-labels 禁止帶有標簽的陳述
no-lone-blocks 禁止不必要的嵌套塊
no-loop-func 禁止在循環(huán)語句中包含不安全引用的函數(shù)聲明
no-magic-numbers 禁止魔術(shù)數(shù)字
no-multi-spaces 不允許多個空格
no-multi-str 禁止多行字符串
no-new 禁止在分配或比較之外使用“新”運算符
no-new-func 禁止使用帶有Function對象的new運算符
no-new-wrappers 禁止使用帶有String胶征,Number和Boolean對象的new運算符
no-nonoctal-decimal-escape 在字符串文字中不允許\ 8
和\ 9
轉(zhuǎn)義序列
no-octal 禁止使用八進制字面量
no-octal-escape 禁止在字符串文字中使用八進制轉(zhuǎn)義序列
no-param-reassign 禁止重新分配“功能”參數(shù)
no-proto 禁止使用__proto__
屬性
no-redeclare 禁止變量重新聲明
no-restricted-properties 禁止某些對象的某些屬性
no-return-assign 在return語句中禁止賦值運算符
no-return-await 禁止不必要的“返回等待”
no-script-url 禁止使用javascript:網(wǎng)址
no-self-assign 不允許雙方完全相同的作業(yè)
no-self-compare 不允許在雙方完全相同的情況下進行比較
no-sequences 禁止逗號運算符
no-throw-literal 禁止將文字作為異常拋出
no-unmodified-loop-condition 禁止未經(jīng)修改的循環(huán)條件
no-unused-expressions 禁止未使用的表達式
no-unused-labels 禁止使用未使用的標簽
no-useless-call 禁止不必要地調(diào)用.call()
和.apply()
no-useless-catch 禁止不必要的catch
子句
no-useless-concat 禁止不必要的串聯(lián)文字或模板文字
no-useless-escape 禁止不必要的轉(zhuǎn)義字符
no-useless-return 禁止多余的返回語句
no-void 禁止void
運算符
no-warning-comments 禁止在評論中使用指定的警告詞
no-with 禁止with
語句
prefer-named-capture-group 在正則表達式中使用命名的捕獲組來強制執(zhí)行
prefer-promise-reject-errors 要求使用錯誤對象作為承諾拒絕原因
prefer-regex-literals 禁止使用RegExp
構(gòu)造函數(shù),而使用正則表達式文字
radix 在使用parseInt()
時強制使用基數(shù)參數(shù)的一致用法
require-await 禁止沒有await表達式的異步函數(shù)
require-unicode-regexp 在RegExp上強制使用u
標志
vars-on-top 要求將var
聲明放在其包含范圍的頂部
wrap-iife 在立即調(diào)用“ function”時需要括號
yoda 要求或禁止“ Yoda”條件
嚴格模式
這些規(guī)則與嚴格模式指令有關(guān):
strict 要求或禁止嚴格模式指令
變數(shù)
這些規(guī)則與變量聲明有關(guān):
init-declarations 要求或禁止變量聲明中的初始化
no-delete-var 禁止刪除變量
no-label-var 禁止與變量共享名稱的標簽
no-restricted-globals 禁止指定的全局變量
no-shadow 禁止在外部范圍中聲明的陰影變量中聲明變量
no-shadow-restricted-names 禁止標識符隱藏受限名稱
no-undef 除非在/ * global * /
注釋中提到桨仿,否則禁止使用未聲明的變量
no-undef-init 不允許將變量初始化為undefined
no-undefined 禁止使用“ undefined”作為標識符
no-unused-vars 禁止使用未使用的變量
no-use-before-define 在定義變量之前禁止使用變量
文體問題
這些規(guī)則與樣式準則有關(guān)睛低,因此非常主觀:
array-bracket-newline 在打開和關(guān)閉數(shù)組括號之后強制換行
array-bracket-spacing 在數(shù)組括號內(nèi)強制使用一致的間距
array-element-newline 在每個數(shù)組元素后強制換行
block-spacing 在打開塊之后和關(guān)閉塊之前禁止或強制在塊內(nèi)使用空格
brace-style 對塊實施一致的支撐樣式
camelcase 強制駝峰命名約定
capitalized-comments 強制或禁止將評論的首字母大寫
comma-dangle 要求或禁止尾隨逗號
comma-spacing 在逗號前后強制保持一致的間距
comma-style 強制使用一致的逗號樣式
computed-property-spacing 在計算的屬性括號內(nèi)強制使用一致的間距
consistent-this 捕獲當前執(zhí)行上下文時強制執(zhí)行一致的命名
eol-last 在文件末尾要求或禁止換行
func-call-spacing 要求或不允許在函數(shù)標識符及其調(diào)用之間使用空格
func-name-matching 要求函數(shù)名稱與為其分配的變量或?qū)傩缘拿Q匹配
func-names 要求或禁止命名的“功能”表達式
func-style 強制使用function
聲明或表達式的一致用法
function-call-argument-newline 在函數(shù)調(diào)用的參數(shù)之間強制換行
function-paren-newline 在函數(shù)括號內(nèi)強制使用一致的換行符
id-denylist 禁止指定的標識符
id-length 強制最小和最大標識符長度
id-match 需要標識符以匹配指定的正則表達式
implicit-arrow-linebreak 強制箭頭功能體的位置
indent 強制一致的縮進
jsx-quotes 強制在JSX屬性中一致使用雙引號或單引號
key-spacing 在對象文字屬性中的鍵和值之間強制保持一致的間距
keyword-spacing 在關(guān)鍵字前后強制保持一致的間距
line-comment-position 強制行注釋的位置
linebreak-style 強制使用一致的換行符樣式
lines-around-comment 在評論周圍要求空行
lines-between-class-members 要求或禁止班級成員之間的空白行
max-depth 強制可以嵌套塊的最大深度
max-len 強制最大行長
max-lines 強制每個文件最大行數(shù)
max-lines-per-function 強制執(zhí)行函數(shù)中的最大代碼行數(shù)
max-nested-callbacks 強制回調(diào)可以嵌套的最大深度
max-params 在函數(shù)定義中強制使用最大數(shù)量的參數(shù)
max-statements 強制執(zhí)行功能塊中允許的最大語句數(shù)
max-statements-per-line 強制每行允許的最大語句數(shù)
multiline-comment-style 對多行注釋實施特定樣式
multiline-ternary 在三元表達式的操作數(shù)之間強制換行
new-cap 要求構(gòu)造函數(shù)名稱以大寫字母開頭
new-parens 調(diào)用不帶參數(shù)的構(gòu)造方法時,強制或禁止使用括號
newline-per-chained-call 在方法鏈中的每次調(diào)用之后都需要換行
no-array-constructor 禁止使用Array構(gòu)造函數(shù)
no-bitwise 禁止按位運算符
no-continue 禁止使用“ continue”語句
no-inline-comments 禁止在代碼后插入行內(nèi)注釋
no-lonely-if 禁止將if語句作為else塊中的唯一語句
no-mixed-operators 不允許混合二進制運算符
no-mixed-spaces-and-tabs 不允許使用空格和制表符進行縮進
no-multi-assign 禁止使用鏈接的賦值表達式
no-multiple-empty-lines 禁止多個空行
no-negated-condition 禁止否定條件
no-nested-ternary 禁止嵌套三元表達式
no-new-object 禁止使用Object構(gòu)造函數(shù)
no-plusplus 禁止一元運算符“ ++”和“-”
no-restricted-syntax 禁止指定語法
no-tabs 禁止所有標簽
no-ternary 禁止三元運算符
no-trailing-spaces 在行尾不允許尾隨空格
no-underscore-dangle 禁止在標識符中懸掛下劃線
no-unneeded-ternary 存在更簡單的替代方案時禁止三元運算符
no-whitespace-before-property 禁止在屬性前使用空格
nonblock-statement-body-position 強制單行語句的位置
object-curly-newline 在打開括號后和關(guān)閉括號之前強制使用一致的換行符
object-curly-spacing 在花括號內(nèi)強制保持一致的間距
object-property-newline 強制將對象屬性放在單獨的行上
one-var 強制在函數(shù)中一起或分別聲明變量
one-var-declaration-per-line 要求或禁止在變量聲明周圍使用換行符
operator-assignment 在可能的情況下要求或不允許賦值運算符速記
operator-linebreak 對操作員實施一致的換行樣式
padded-blocks 要求或禁止在塊內(nèi)填充
padding-line-between-statements 要求或禁止語句之間的填充線
prefer-exponentiation-operator 禁止使用Math.pow
來支持**
運算符
prefer-object-spread 禁止將Object.assign與對象文字一起用作第一個參數(shù)服傍,而更喜歡使用對象傳播钱雷。
quote-props 要求在對象文字屬性名稱周圍加上引號
quotes 強制使用反引號,雙引號或單引號的一致使用
semi 要求或禁止使用分號代替ASI
semi-spacing 在分號之前和之后強制保持一致的間距
semi-style 強制分號的位置
sort-keys 要求對對象鍵進行排序
sort-vars 要求對同一聲明塊中的變量進行排序
space-before-blocks 在塊之前強制保持一致的間距
space-before-function-paren 在“ function”定義打開括號之前強制執(zhí)行一致的間距
space-in-parens 強制括號內(nèi)的間距一致
space-infix-ops 需要在中綴運算符之間留有間距
space-unary-ops 在一元運算符之前或之后強制執(zhí)行一致的間距
spaced-comment 在注釋中的“ //”或“ / *”之后強制保持一致的間距
switch-colon-spacing 在switch語句的冒號之間強制使用空格
template-tag-spacing 在模板標簽及其文字之間需要或不允許使用空格
unicode-bom 要求或禁止Unicode字節(jié)順序標記(BOM)
wrap-regex 在正則表達式文字周圍需要括號
ECMAScript 6
這些規(guī)則與ES6(也稱為ES2015)有關(guān):
arrow-body-style 在箭頭功能主體周圍需要大括號
arrow-parens 在箭頭函數(shù)參數(shù)周圍需要括號
arrow-spacing 在箭頭函數(shù)中的箭頭前后強制保持一致的間距
constructor-super 在構(gòu)造函數(shù)中需要super()
調(diào)用
generator-star-spacing 在生成器函數(shù)中的*
運算符周圍強制保持一致的間距
no-class-assign 禁止重新分配班級成員
no-confusing-arrow 禁止將箭頭功能與比較混淆的地方
no-const-assign 禁止重新分配const變量
no-dupe-class-members 禁止重復(fù)的班級成員
no-duplicate-imports 禁止重復(fù)的模塊導(dǎo)入
no-new-symbol 用Symbol
對象禁止new
操作符
no-restricted-exports 禁止在出口中指定名稱
no-restricted-imports 當由import
加載時吹零,禁止指定的模塊
no-this-before-super 在構(gòu)造函數(shù)中調(diào)用super()
之前禁止this
/super
no-useless-computed-key 禁止在對象和類中使用不必要的計算屬性鍵
no-useless-constructor 禁止不必要的構(gòu)造函數(shù)
no-useless-rename 禁止將導(dǎo)入罩抗,導(dǎo)出和重組的分配重命名為相同的名稱
no-var 需要let
或const
而不是var
object-shorthand 要求或禁止對象文字的方法和屬性速記語法
prefer-arrow-callback 需要使用箭頭函數(shù)進行回調(diào)
prefer-const 對于聲明后永遠不會重新分配的變量,需要使用const聲明
prefer-destructuring 需要從數(shù)組和/或?qū)ο笾薪鈽?gòu)
prefer-numeric-literals 禁止使用parseInt()和Number.parseInt()支持二進制灿椅,八進制和十六進制文字
prefer-rest-params 需要rest參數(shù)而不是arguments
prefer-spread 需要使用散布運算符套蒂,而不是.apply()
prefer-template 需要模板文字而不是字符串連接
require-yield 要求生成器函數(shù)包含yield
rest-spread-spacing 強制休息和散布算子及其表達式之間的間隔
sort-imports 在模塊中強制執(zhí)行排序的導(dǎo)入聲明
symbol-description 需要符號說明
template-curly-spacing 要求或不允許在模板字符串的嵌入表達式周圍留空格
yield-star-spacing 在Yield 表達式中的周圍需要或不允許使用空格
不推薦使用
這些規(guī)則已根據(jù)棄用策略棄用,并由較新的規(guī)則代替:
Deprecated rule 取而代之
callback-return 回調(diào)返回
(no replacement) (無替代)
global-require 全球需求
(no replacement) (無替代)
handle-callback-err 處理回調(diào)錯誤
(no replacement) (無替代)
id-blacklist id拒絕列表
indent-legacy 縮進
lines-around-directive 語句之間的填充線
newline-after-var 語句之間的填充線
newline-before-return 語句之間的填充線
no-buffer-constructor 無緩沖構(gòu)造函數(shù)
(no replacement) (無替代)
no-catch-shadow 無影
no-mixed-requires 沒有混合的要求
(no replacement) (無替代)
no-native-reassign 沒有全局分配
no-negated-in-lhs 沒有不安全的否定
no-new-require 沒有新要求
(no replacement) (無替代)
no-path-concat 無路徑連接
(no replacement) (無替代)
no-process-env 無進程環(huán)境
(no replacement) (無替代)
no-process-exit 無流程退出
(no replacement) (無替代)
no-restricted-modules 無限制模塊
(no replacement) (無替代)
no-spaced-func 功能通話間隔
no-sync 不同步
(no replacement) (無替代)
prefer-reflect 喜歡反射
(no replacement) (無替代)
require-jsdoc require-jsdoc
(no replacement) (無替代)
valid-jsdoc 有效的jsdoc
(no replacement) (無替代)
已移除
來自舊版ESLint的這些規(guī)則(在存在棄用策略之前)已由新規(guī)則替換:
Removed rule 取而代之
generator-star 發(fā)電機星空
global-strict 嚴格的
no-arrow-condition 無混淆箭頭 無常數(shù)條件
no-comma-dangle 逗號
no-empty-class 無空字符類
no-empty-label 無標簽
no-extra-strict 嚴格的
no-reserved-keys 報價道具
no-space-before-semi 半間隔
no-wrap-func 沒有多余的父母
space-after-function-name 功能前的空格
space-after-keywords 關(guān)鍵字間距
space-before-function-parentheses 功能前的空格
space-before-keywords 關(guān)鍵字間距
space-in-brackets 對象卷曲間距 數(shù)組間距
space-return-throw-case 關(guān)鍵字間距
space-unary-word-ops 一元空間
spaced-line-comment 空格注釋