版本

规则参考

ESLint 中的规则按类型分组,以帮助你理解它们的目的。每个规则都有表情符号表示

推荐

使用 recommended 配置从 @eslint/js配置文件 中启用此规则

🔧 可修复

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

💡 有建议

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

❄️ 冻结

此规则当前 冻结 并且不接受功能请求。

可能的问题

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

强制数组方法的回调函数中包含 return 语句

分类

💡 建议

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

分类

扩展

强制 for 循环更新子句将计数器向正确的方向移动

分类

扩展

强制 getter 函数中包含 return 语句

分类

扩展

禁止在循环中使用 await

分类

禁止重新赋值类成员

分类

扩展

禁止在条件表达式中使用赋值运算符

分类

扩展

禁止重新赋值 constusingawait using 变量

分类

扩展

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

分类

扩展

禁止使用 debugger

分类

扩展

禁止在 function 定义中重复参数

分类

扩展

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

分类

扩展

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

分类

扩展

禁止空解构模式

分类

扩展

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

分类

扩展

禁止 case 语句的 fallthrough

分类

扩展

禁止重新赋值 function 声明

分类

扩展

禁止将值赋给导入的绑定

分类

扩展

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

分类

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

分类

扩展

禁止使用会损失精度的字面量数字

分类

扩展

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

分类

扩展

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

分类

扩展

💡 建议

禁止赋值,其中两侧完全相同

分类

扩展

禁止比较,其中两侧完全相同

分类

禁止从 setter 函数返回值

分类

扩展

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

分类

扩展

禁止声明但从未使用过的 letvar 变量

分类

扩展

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

分类

扩展

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

分类

扩展

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

分类

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

分类

扩展

禁止否定关系运算符的左操作数

分类

扩展

💡 建议

禁止使用未使用的变量

分类

扩展

💡 建议

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

分类

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

分类

扩展

禁止赋值,这些赋值可能由于使用 awaityield 而导致竞争条件

分类

要求在检查 NaN 时调用 isNaN()

分类

扩展

💡 建议

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

分类

扩展

💡 建议

建议

这些规则建议以不同的方式做事

强制在对象和类中使用 getter 和 setter 对

分类
arrow-body-style

❄️ 冻结

要求箭头函数体周围使用大括号

分类

🔧 修复

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

分类
camelcase

❄️ 冻结

强制使用驼峰命名约定

分类
capitalized-comments

❄️ 冻结

强制或禁止对注释的第一个字母进行大写

分类

🔧 修复

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

分类

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

分类
consistent-this

❄️ 冻结

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

分类
curly

❄️ 冻结

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

分类

🔧 修复

要求 switch 语句中包含 default 分支

分类

强制 switch 语句中的 default 子句位于最后

分类
default-param-last

❄️ 冻结

强制默认参数位于最后

分类
dot-notation

❄️ 冻结

尽可能强制使用点符号

分类

🔧 修复

要求使用 ===!==

分类

🔧 修复

💡 建议

func-name-matching

❄️ 冻结

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

分类

要求或禁止命名 function 表达式

分类
func-style

❄️ 冻结

强制一致地使用 function 声明或分配给变量的表达式

分类

要求在对象字面量和类中对访问器对进行分组

分类

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

分类
id-denylist

❄️ 冻结

禁止指定的标识符

分类
id-length

❄️ 冻结

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

分类
id-match

❄️ 冻结

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

分类
init-declarations

❄️ 冻结

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

分类

强制每个文件允许的最大类数

分类

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

分类

强制每个文件允许的最大行数

分类

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

分类

强制函数定义中允许的最大参数数

分类

强制函数块中允许的最大语句数

分类

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

分类

禁止使用 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

❄️ 冻结

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

分类

🔧 修复

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

分类
no-magic-numbers

❄️ 冻结

禁止使用魔术数字

分类

禁止使用链式赋值表达式

分类
no-multi-str

❄️ 冻结

禁止多行字符串

分类
no-nested-ternary

❄️ 冻结

禁止嵌套三元表达式

分类

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

分类

禁止使用 Function 对象创建 new 运算符

分类

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

分类

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

分类

扩展

💡 建议

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

分类

💡 建议

禁止使用八进制字面量

分类

扩展

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

分类

禁止重新分配函数参数

分类
no-plusplus

❄️ 冻结

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

分类

禁止使用 __proto__ 属性

分类

禁止变量重新声明

分类

扩展

禁止正则表达式中出现多个空格

分类

扩展

🔧 修复

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

分类

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

分类

禁止使用 javascript: URL

分类

禁止使用逗号运算符

分类

禁止变量声明遮蔽外部作用域中声明的变量

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

❄️ 冻结

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

分类

🔧 修复

要求对声明后从未重新分配的变量使用 const 声明

分类

🔧 修复

prefer-destructuring

❄️ 冻结

要求从数组和/或对象进行解构

分类

🔧 修复

禁止使用 parseInt()Number.parseInt(),而推荐使用二进制、八进制和十六进制字面量

分类

🔧 修复

禁止使用 Object.prototype.hasOwnProperty.call(),而推荐使用 Object.hasOwn()

分类

🔧 修复

prefer-object-spread

❄️ 冻结

禁止使用对象字面量作为第一个参数的 Object.assign,而推荐使用对象展开运算符

分类

🔧 修复

禁止使用 RegExp 构造函数,而推荐使用正则表达式字面量

分类

💡 建议

要求使用剩余参数代替 arguments

分类
prefer-spread

❄️ 冻结

要求使用展开运算符代替 .apply()

分类
prefer-template

❄️ 冻结

要求使用模板字面量代替字符串连接

分类

🔧 修复

禁止在重新抛出自定义错误时丢失原始捕获的错误

分类

扩展

💡 建议

强制在使用 parseInt() 时使用基数参数

分类

💡 建议

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

分类

💡 建议

强制在正则表达式中使用 uv 标志

分类

💡 建议

要求生成器函数包含 yield

分类

扩展

sort-imports

❄️ 冻结

强制模块内 import 声明排序

分类

🔧 修复

sort-keys

❄️ 冻结

要求对象键排序

分类
sort-vars

❄️ 冻结

要求在同一声明块中变量排序

分类

🔧 修复

要求或禁止严格模式指令

分类

🔧 修复

vars-on-top

❄️ 冻结

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

分类
yoda

❄️ 冻结

要求或禁止“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(在 弃用策略 存在之前)已被新规则替换

global-strict 已移除

strict 替换

no-empty-label 已移除

no-labels 替换

no-extra-strict 已移除

strict 替换

valid-jsdoc 已移除

require-jsdoc 已移除

更改语言