版本

规则参考

ESLint 中的规则按类型分组,以帮助您了解其用途。每个规则都带有表示以下内容的表情符号:

推荐

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

🔧 可修复

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

💡 hasSuggestions

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

可能出现的问题

这些规则与代码中可能存在的逻辑错误相关

array-callback-return

在数组方法的回调中强制使用 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-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-pattern

禁止空解构模式

类别

扩展

no-ex-assign

禁止在 catch 子句中重新赋值异常

类别

扩展

no-fallthrough

禁止 case 语句的贯穿

类别

扩展

no-func-assign

禁止重新赋值 function 声明

类别

扩展

no-import-assign

禁止赋值给导入的绑定

类别

扩展

no-inner-declarations

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

类别
no-invalid-regexp

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

类别

扩展

no-obj-calls

禁止将全局对象属性作为函数调用

类别

扩展

no-prototype-builtins

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

类别

扩展

💡 建议

no-self-assign

禁止两侧完全相同的赋值

类别

扩展

no-self-compare

禁止两侧完全相同的比较

类别
no-setter-return

禁止从 setter 返回值

类别

扩展

no-this-before-super

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

类别

扩展

no-undef

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

类别

扩展

no-unreachable

禁止在 returnthrowcontinuebreak 语句之后使用不可达代码

类别

扩展

no-unreachable-loop

禁止循环体仅允许一次迭代的循环

类别
no-unsafe-finally

禁止在 finally 块中使用控制流语句

类别

扩展

no-unsafe-negation

禁止对关系运算符的左操作数取反

类别

扩展

💡 建议

no-unused-vars

禁止未使用变量

类别

扩展

no-use-before-define

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

类别
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

强制使用驼峰命名约定

类别
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

禁止在 else 块中将 if 语句作为唯一语句

类别

🔧 修复

no-loop-func

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

类别
no-magic-numbers

禁止使用魔法数字

类别
no-multi-assign

禁止使用链式赋值表达式

类别
no-multi-str

禁止使用多行字符串

类别
no-nested-ternary

禁止使用嵌套三元表达式

类别
no-new

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

类别
no-new-func

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

类别
no-new-wrappers

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

类别
no-nonoctal-decimal-escape

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

类别

扩展

💡 建议

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-imports

禁止使用 import 加载指定的模块

类别
no-return-assign

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

类别
no-script-url

禁止使用 javascript: 类型的 URL

类别
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

禁止将导入、导出和解构赋值重命名为相同的名称

类别

🔧 修复

no-useless-return

禁止冗余的 return 语句

类别

🔧 修复

no-var

要求使用 letconst 而不是 var

类别

🔧 修复

no-void

禁止使用 void 运算符

类别
no-warning-comments

禁止在注释中使用指定的警告术语

类别
no-with

禁止使用 with 语句

类别

扩展

object-shorthand

要求或禁止对象字面量的简写方法和属性语法

类别

🔧 修复

one-var

强制变量在函数中要么一起声明,要么分别声明

类别

🔧 修复

operator-assignment

要求或禁止在可能的情况下使用赋值运算符简写

类别

🔧 修复

prefer-arrow-callback

要求使用箭头函数作为回调函数

类别

🔧 修复

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

要求使用剩余参数而不是 arguments

类别
prefer-spread

要求使用展开运算符而不是 .apply()

类别
prefer-template

要求使用模板字面量而不是字符串连接

类别

🔧 修复

radix

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

类别

💡 建议

require-await

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

类别

💡 建议

require-yield

要求生成器函数包含 yield

类别

扩展

sort-imports

强制模块内的导入声明排序

类别

🔧 修复

sort-keys

要求对象键排序

类别
sort-vars

要求相同声明块内的变量排序

类别

🔧 修复

strict

要求或禁止使用严格模式指令

类别

🔧 修复

vars-on-top

要求将 var 声明放在其包含作用域的顶部

类别
yoda

要求或禁止使用“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 已移除

已替换为

更改语言