规则参考

ESLint 中的规则按类型分组,以帮助你了解它们的用途。每条规则都有表情符号表示:

Rules in ESLint are grouped by type to help you understand their purpose. Each rule has emojis denoting:

Recommended

配置文件 中使用来自 @eslint/jsrecommended 配置可以启用此规则

🔧 Fixable

此规则报告的一些问题可通过 --fix 命令行选项自动修复

💡 hasSuggestions

此规则报告的一些问题可通过编辑器建议手动修复

可能的问题

这些规则与代码中可能出现的逻辑错误有关:

array-callback-return

在数组方法的回调中强制执行 return 语句

Categories:

💡 Suggestions

constructor-super

要求在构造函数中调用 super()

Categories:

Extends

for-direction

强制执行 “for” 循环更新子句,使计数器向正确的方向移动

Categories:

Extends

getter-return

在 getter 中执行 return 语句

Categories:

Extends

no-async-promise-executor

禁止使用异步函数作为 Promise 执行器

Categories:

Extends

no-await-in-loop

禁止 await 进入循环

Categories:
no-class-assign

禁止重新分配类成员

Categories:

Extends

no-compare-neg-zero

不允许与 -0 进行比较

Categories:

Extends

no-cond-assign

禁止条件表达式中的赋值运算符

Categories:

Extends

no-const-assign

禁止重新分配 const 变量

Categories:

Extends

no-constant-condition

禁止在条件中使用常量表达式

Categories:

Extends

no-constructor-return

不允许从构造函数返回值

Categories:
no-control-regex

禁止在正则表达式中使用控制字符

Categories:

Extends

no-debugger

禁止使用 debugger

Categories:

Extends

no-dupe-args

禁止 function 定义中的重复参数

Categories:

Extends

no-dupe-else-if

禁止 if-else-if 链中的重复条件

Categories:

Extends

no-dupe-keys

禁止对象字面量中的重复键

Categories:

Extends

no-duplicate-case

不允许重复的案例标签

Categories:

Extends

no-empty-character-class

禁止在正则表达式中使用空字符类

Categories:

Extends

no-empty-pattern

不允许空解构模式

Categories:

Extends

no-ex-assign

禁止在 catch 条款中重新分配例外情况

Categories:

Extends

no-fallthrough

禁止 case 语句的失败

Categories:

Extends

no-func-assign

禁止重新分配 function 声明

Categories:

Extends

no-import-assign

禁止分配给导入的绑定

Categories:

Extends

no-inner-declarations

禁止在嵌套块中声明变量或 function

Categories:
no-invalid-regexp

禁止在 RegExp 构造函数中使用无效的正则表达式字符串

Categories:

Extends

no-loss-of-precision

不允许失去精度的字面数字

Categories:

Extends

no-misleading-character-class

不允许在字符类语法中使用多个代码点组成的字符

Categories:

Extends

💡 Suggestions

no-obj-calls

不允许将全局对象属性作为函数调用

Categories:

Extends

no-prototype-builtins

禁止直接在对象上调用某些 Object.prototype 方法

Categories:

Extends

💡 Suggestions

no-self-assign

禁止双方完全相同的分配

Categories:

Extends

no-self-compare

禁止双方完全相同的比较

Categories:
no-setter-return

禁止从 setter 返回值

Categories:

Extends

no-sparse-arrays

不允许稀疏数组

Categories:

Extends

no-template-curly-in-string

禁止在常规字符串中使用模板字面占位符语法

Categories:
no-this-before-super

在构造函数中调用 super() 之前禁止 this/super

Categories:

Extends

no-undef

禁止使用未声明的变量,除非在 /*global */ 注释中提及

Categories:

Extends

no-unreachable

禁止在 returnthrowcontinuebreak 语句后出现无法访问的代码

Categories:

Extends

no-unreachable-loop

不允许循环体只允许一次迭代

Categories:
no-unsafe-finally

禁止 finally 块中的控制流语句

Categories:

Extends

no-unsafe-negation

不允许否定关系运算符的左操作数

Categories:

Extends

💡 Suggestions

no-unsafe-optional-chaining

不允许在不允许 undefined 值的上下文中使用可选链接

Categories:

Extends

no-unused-vars

禁止未使用的变量

Categories:

Extends

no-use-before-define

禁止在定义变量之前使用变量

Categories:
no-useless-assignment

不使用值时禁止变量赋值

Categories:
no-useless-backreference

禁止在正则表达式中使用无用的反向引用

Categories:

Extends

require-atomic-updates

禁止因使用 awaityield 而导致竞争条件的分配

Categories:
use-isnan

检查 NaN 时需要调用 isNaN()

Categories:

Extends

valid-typeof

强制将 typeof 表达式与有效字符串进行比较

Categories:

Extends

💡 Suggestions

建议

这些规则建议了替代的使用方式:

accessor-pairs

在对象和类中强制执行 getter 和 setter 对

Categories:
arrow-body-style

箭头函数体周围需要大括号

Categories:

🔧 Fix

block-scoped-var

在定义的范围内强制使用变量

Categories:
camelcase

强制执行驼峰命名约定

Categories:
capitalized-comments

强制或禁止注释首字母大写

Categories:

🔧 Fix

complexity

强制执行程序中允许的最大圈复杂度

Categories:
consistent-return

要求 return 语句始终或从不指定值

Categories:
consistent-this

在捕获当前执行上下文时强制执行一致的命名

Categories:
curly

对所有控制语句强制执行一致的大括号样式

Categories:

🔧 Fix

default-case

switch 语句中要求 default 个案例

Categories:
default-case-last

强制 switch 语句中的默认子句在最后

Categories:
default-param-last

强制默认参数在最后

Categories:
dot-notation

尽可能使用点符号

Categories:

🔧 Fix

eqeqeq

要求使用 ===!==

Categories:

🔧 Fix

func-name-matching

要求函数名称与分配给它们的变量或属性的名称相匹配

Categories:
func-names

要求或禁止命名的 function 表达式

Categories:
func-style

强制一致使用 function 声明或表达式

Categories:
grouped-accessor-pairs

要求对象字面量和类中的分组访问器对

Categories:
guard-for-in

要求 for-in 循环包含 if 语句

Categories:
id-denylist

不允许指定的标识符

Categories:
id-length

强制执行最小和最大标识符长度

Categories:
id-match

要求标识符匹配指定的正则表达式

Categories:
init-declarations

要求或禁止在变量声明中进行初始化

Categories:
max-classes-per-file

强制每个文件的最大类数

Categories:
max-depth

强制执行块可以嵌套的最大深度

Categories:
max-lines

强制每个文件的最大行数

Categories:
max-lines-per-function

在函数中强制执行最大代码行数

Categories:
max-nested-callbacks

强制执行回调可以嵌套的最大深度

Categories:
max-params

在函数定义中强制执行最大数量的参数

Categories:
max-statements

强制执行功能块中允许的最大语句数

Categories:
multiline-comment-style

为多行注释强制执行特定样式

Categories:

🔧 Fix

new-cap

要求构造函数名称以大写字母开头

Categories:
no-alert

禁止使用 alertconfirmprompt

Categories:
no-bitwise

禁止按位运算符

Categories:
no-caller

禁止使用 arguments.callerarguments.callee

Categories:
no-case-declarations

不允许在 case 子句中进行词法声明

Categories:

Extends

no-console

禁止使用 console

Categories:

💡 Suggestions

no-continue

禁止 continue 语句

Categories:
no-delete-var

不允许删除变量

Categories:

Extends

no-div-regex

在正则表达式的开头明确禁止等号

Categories:

🔧 Fix

no-else-return

禁止 if 语句中的 return 语句之后的 else

Categories:

🔧 Fix

no-empty

不允许空块语句

Categories:

Extends

💡 Suggestions

no-empty-function

不允许空函数

Categories:
no-eq-null

禁止在没有类型检查运算符的情况下进行 null 比较

Categories:
no-eval

禁止使用 eval()

Categories:
no-extend-native

禁止扩展原生类型

Categories:
no-extra-bind

禁止对 .bind() 进行不必要的调用

Categories:

🔧 Fix

no-extra-label

禁止不必要的标签

Categories:

🔧 Fix

no-global-assign

不允许分配给原生对象或只读全局变量

Categories:

Extends

no-implicit-globals

不允许在全局作用域内声明

Categories:
no-implied-eval

禁止使用类似 eval() 的方法

Categories:
no-inline-comments

禁止代码后的内联注释

Categories:
no-invalid-this

禁止在 this 的值为 undefined 的上下文中使用 this

Categories:
no-iterator

禁止使用 __iterator__ 属性

Categories:
no-label-var

禁止与变量共享名称的标签

Categories:
no-labels

禁止标记语句

Categories:
no-lone-blocks

禁止不必要的嵌套块

Categories:
no-lonely-if

不允许 if 语句作为 else 块中的唯一语句

Categories:

🔧 Fix

no-loop-func

禁止在循环语句中包含不安全引用的函数声明

Categories:
no-magic-numbers

禁止幻数

Categories:
no-multi-assign

禁止使用链式赋值表达式

Categories:
no-multi-str

禁止多行字符串

Categories:
no-nested-ternary

禁止嵌套的三元表达式

Categories:
no-new

禁止在赋值或比较之外使用 new 运算符

Categories:
no-new-func

禁止使用 Function 对象的 new 运算符

Categories:
no-new-wrappers

禁止对 StringNumberBoolean 对象使用 new 运算符

Categories:
no-nonoctal-decimal-escape

禁止在字符串字面中使用 \8\9 转义序列

Categories:

Extends

💡 Suggestions

no-object-constructor

禁止调用不带参数的 Object 构造函数

Categories:

💡 Suggestions

no-octal

禁止八进制字面

Categories:

Extends

no-octal-escape

禁止在字符串字面中使用八进制转义序列

Categories:
no-param-reassign

不允许重新分配 function 参数

Categories:
no-plusplus

禁止使用一元运算符 ++--

Categories:
no-proto

禁止使用 __proto__ 属性

Categories:
no-redeclare

不允许变量重新声明

Categories:

Extends

no-regex-spaces

禁止在正则表达式中使用多个空格

Categories:

Extends

🔧 Fix

no-restricted-imports

import 加载时禁止指定模块

Categories:
no-return-assign

禁止在 return 语句中使用赋值运算符

Categories:
no-script-url

禁止 javascript: 网址

Categories:
no-sequences

禁止逗号运算符

Categories:
no-shadow

禁止在外部作用域中声明的隐藏变量的变量声明

Categories:
no-ternary

禁止三元运算符

Categories:
no-throw-literal

不允许将字面作为异常抛出

Categories:
no-undef-init

不允许将变量初始化为 undefined

Categories:

🔧 Fix

no-undefined

禁止使用 undefined 作为标识符

Categories:
no-underscore-dangle

不允许在标识符中使用悬挂下划线

Categories:
no-unneeded-ternary

当存在更简单的替代方案时,禁止使用三元运算符

Categories:

🔧 Fix

no-unused-labels

禁止未使用的标签

Categories:

Extends

🔧 Fix

no-useless-call

禁止对 .call().apply() 进行不必要的调用

Categories:
no-useless-catch

禁止不必要的 catch 条款

Categories:

Extends

no-useless-computed-key

禁止在对象和类中使用不必要的计算属性键

Categories:

🔧 Fix

no-useless-concat

禁止不必要的字面或模板字面串联

Categories:
no-useless-escape

禁止不必要的转义字符

Categories:

Extends

💡 Suggestions

no-useless-rename

不允许将导入、导出和解构的分配重命名为相同的名称

Categories:

🔧 Fix

no-useless-return

禁止冗余返回语句

Categories:

🔧 Fix

no-var

需要 letconst 而不是 var

Categories:

🔧 Fix

no-void

禁止 void 运算符

Categories:
no-warning-comments

不允许在注释中指定警告条款

Categories:
no-with

禁止 with 语句

Categories:

Extends

object-shorthand

要求或禁止对象字面的方法和属性速记语法

Categories:

🔧 Fix

one-var

强制变量在函数中一起或单独声明

Categories:

🔧 Fix

operator-assignment

尽可能要求或禁止赋值运算符简写

Categories:

🔧 Fix

prefer-arrow-callback

需要使用箭头函数进行回调

Categories:

🔧 Fix

prefer-const

声明后永远不会重新分配的变量需要 const 声明

Categories:

🔧 Fix

prefer-destructuring

需要从数组和/或对象中解构

Categories:

🔧 Fix

prefer-numeric-literals

不允许 parseInt()Number.parseInt() 支持二进制、八进制和十六进制字面

Categories:

🔧 Fix

prefer-object-has-own

不允许使用 Object.prototype.hasOwnProperty.call(),更喜欢使用 Object.hasOwn()

Categories:

🔧 Fix

prefer-object-spread

禁止使用带有对象字面量的 Object.assign 作为第一个参数,而更喜欢使用对象扩展

Categories:

🔧 Fix

prefer-regex-literals

禁止使用 RegExp 构造函数以支持正则表达式字面

Categories:

💡 Suggestions

prefer-rest-params

需要 rest 参数而不是 arguments

Categories:
prefer-spread

需要扩展运算符而不是 .apply()

Categories:
prefer-template

需要模板字面而不是字符串连接

Categories:

🔧 Fix

radix

使用 parseInt() 时强制一致使用基数参数

Categories:

💡 Suggestions

require-await

禁止没有 await 表达式的异步函数

Categories:
require-unicode-regexp

强制在 RegExp 上使用 uv 标志

Categories:

💡 Suggestions

require-yield

要求生成器函数包含 yield

Categories:

Extends

sort-imports

在模块中强制执行排序的导入声明

Categories:

🔧 Fix

sort-keys

要求对对象键进行排序

Categories:
sort-vars

要求对同一声明块中的变量进行排序

Categories:

🔧 Fix

strict

要求或禁止严格模式指令

Categories:

🔧 Fix

vars-on-top

要求 var 声明放在其包含范围的顶部

Categories:
yoda

要求或禁止 “Yoda” 条件

Categories:

🔧 Fix

布局和格式

这些规则关心的是代码的外观而不是它的执行方式:

unicode-bom

要求或禁止 Unicode 字节顺序标记 (BOM)

Categories:

🔧 Fix

已弃用

根据 弃用政策,这些规则已被弃用,并被新规则取代:

array-bracket-newline 已弃用

Categories:

🔧 Fix

array-bracket-spacing 已弃用

Categories:

🔧 Fix

array-element-newline 已弃用

Categories:

🔧 Fix

arrow-parens 已弃用

Categories:

🔧 Fix

arrow-spacing 已弃用

Categories:

🔧 Fix

block-spacing 已弃用

Categories:

🔧 Fix

brace-style 已弃用

Categories:

🔧 Fix

callback-return 已弃用

Categories:

comma-dangle 已弃用

Categories:

🔧 Fix

comma-spacing 已弃用

Categories:

🔧 Fix

comma-style 已弃用

Categories:

🔧 Fix

computed-property-spacing 已弃用

Categories:

🔧 Fix

dot-location 已弃用

Categories:

🔧 Fix

eol-last 已弃用

Categories:

🔧 Fix

func-call-spacing 已弃用

Categories:

🔧 Fix

function-call-argument-newline 已弃用

Categories:

🔧 Fix

function-paren-newline 已弃用

Categories:

🔧 Fix

generator-star-spacing 已弃用

Categories:

🔧 Fix

global-require 已弃用

Categories:

handle-callback-err 已弃用

Categories:

id-blacklist 已弃用

替换为 id-denylist

Categories:

implicit-arrow-linebreak 已弃用

Categories:

🔧 Fix

indent 已弃用

Categories:

🔧 Fix

indent-legacy 已弃用

替换为 indent

Categories:

🔧 Fix

jsx-quotes 已弃用

Categories:

🔧 Fix

key-spacing 已弃用

Categories:

🔧 Fix

keyword-spacing 已弃用

Categories:

🔧 Fix

linebreak-style 已弃用

Categories:

🔧 Fix

lines-around-comment 已弃用

Categories:

🔧 Fix

lines-between-class-members 已弃用

Categories:

🔧 Fix

max-len 已弃用

Categories:

max-statements-per-line 已弃用

Categories:

multiline-ternary 已弃用

Categories:

🔧 Fix

new-parens 已弃用

Categories:

🔧 Fix

newline-per-chained-call 已弃用

Categories:

🔧 Fix

no-buffer-constructor 已弃用

Categories:

no-catch-shadow 已弃用

替换为 no-shadow

Categories:

no-confusing-arrow 已弃用

Categories:

🔧 Fix

no-extra-parens 已弃用

Categories:

🔧 Fix

no-extra-semi 已弃用

Categories:

🔧 Fix

no-floating-decimal 已弃用

Categories:

🔧 Fix

no-mixed-operators 已弃用

Categories:

no-mixed-requires 已弃用

Categories:

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

Categories:

no-multi-spaces 已弃用

Categories:

🔧 Fix

no-multiple-empty-lines 已弃用

Categories:

🔧 Fix

no-native-reassign 已弃用

替换为 no-global-assign

Categories:

no-negated-in-lhs 已弃用

替换为 no-unsafe-negation

Categories:

no-new-require 已弃用

Categories:

no-path-concat 已弃用

Categories:

no-process-env 已弃用

Categories:

no-process-exit 已弃用

Categories:

no-restricted-modules 已弃用

Categories:

no-return-await 已弃用

Categories:

💡 Suggestions

no-spaced-func 已弃用

替换为 func-call-spacing

Categories:

🔧 Fix

no-sync 已弃用

Categories:

no-tabs 已弃用

Categories:

no-trailing-spaces 已弃用

Categories:

🔧 Fix

no-whitespace-before-property 已弃用

Categories:

🔧 Fix

nonblock-statement-body-position 已弃用

Categories:

🔧 Fix

object-curly-newline 已弃用

Categories:

🔧 Fix

object-curly-spacing 已弃用

Categories:

🔧 Fix

object-property-newline 已弃用

Categories:

🔧 Fix

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

Categories:

🔧 Fix

operator-linebreak 已弃用

Categories:

🔧 Fix

padded-blocks 已弃用

Categories:

🔧 Fix

padding-line-between-statements 已弃用

Categories:

🔧 Fix

prefer-reflect 已弃用

Categories:

quote-props 已弃用

Categories:

🔧 Fix

quotes 已弃用

Categories:

🔧 Fix

rest-spread-spacing 已弃用

Categories:

🔧 Fix

semi 已弃用

Categories:

🔧 Fix

semi-spacing 已弃用

Categories:

🔧 Fix

semi-style 已弃用

Categories:

🔧 Fix

space-before-blocks 已弃用

Categories:

🔧 Fix

space-before-function-paren 已弃用

Categories:

🔧 Fix

space-in-parens 已弃用

Categories:

🔧 Fix

space-infix-ops 已弃用

Categories:

🔧 Fix

space-unary-ops 已弃用

Categories:

🔧 Fix

spaced-comment 已弃用

Categories:

🔧 Fix

switch-colon-spacing 已弃用

Categories:

🔧 Fix

template-curly-spacing 已弃用

Categories:

🔧 Fix

template-tag-spacing 已弃用

Categories:

🔧 Fix

wrap-iife 已弃用

Categories:

🔧 Fix

wrap-regex 已弃用

Categories:

🔧 Fix

yield-star-spacing 已弃用

Categories:

🔧 Fix

已删除

旧版本 ESLint(在 弃用政策 存在之前)中的这些规则已被新规则取代:

global-strict 已移除

替换为 strict

no-empty-label 已移除

替换为 no-labels

no-extra-strict 已移除

替换为 strict

valid-jsdoc 已移除

替换为

require-jsdoc 已移除

替换为

ESLint 中文网
粤ICP备13048890号