强制数组方法的回调中包含 return
语句
💡 建议
ESLint 中的规则按类型分组,以帮助您理解其用途。每个规则都有表情符号表示
在配置文件中使用来自 @eslint/js
的 recommended
配置启用此规则
此规则报告的某些问题可以通过 --fix
命令行选项自动修复
此规则报告的某些问题可以通过编辑器建议手动修复
此规则目前处于冻结状态,不接受功能请求。
这些规则与代码中可能的逻辑错误有关
强制数组方法的回调中包含 return
语句
💡 建议
在构造函数中要求 super()
调用
✅ 扩展
强制 for
循环更新子句以正确的方向移动计数器
✅ 扩展
强制 getter 中包含 return
语句
✅ 扩展
禁用将异步函数用作 Promise 执行器
✅ 扩展
禁止在循环内部使用 await
禁止重新分配类成员
✅ 扩展
禁止与 -0
进行比较
✅ 扩展
禁止在条件表达式中使用赋值运算符
✅ 扩展
禁止重新分配 const
变量
✅ 扩展
禁止操作不影响值的表达式
✅ 扩展
禁止在条件中使用常量表达式
✅ 扩展
禁止从构造函数返回值
禁止在正则表达式中使用控制字符
✅ 扩展
禁用 debugger
的使用
✅ 扩展
禁止在 function
定义中出现重复的参数
✅ 扩展
禁止重复的类成员
✅ 扩展
禁止在 if-else-if 链中出现重复条件
✅ 扩展
禁止在对象字面量中出现重复键
✅ 扩展
禁止重复的 case 标签
✅ 扩展
禁止重复的模块导入
禁止在正则表达式中出现空字符类
✅ 扩展
禁止空解构模式
✅ 扩展
禁止在 catch
子句中重新分配异常
✅ 扩展
禁止 case
语句的意外穿透
✅ 扩展
禁止重新分配 function
声明
✅ 扩展
禁止给导入的绑定赋值
✅ 扩展
禁止在嵌套块中使用变量或 function
声明
禁止在 RegExp
构造函数中使用无效的正则表达式字符串
✅ 扩展
禁止不规则的空白
✅ 扩展
禁止精度会丢失的数字字面量
✅ 扩展
禁止在字符类语法中使用由多个代码点组成的字符
✅ 扩展
💡 建议
禁止对全局非构造函数使用 new
运算符
✅ 扩展
禁止将全局对象属性作为函数调用
✅ 扩展
禁止从 Promise 执行器函数返回值
💡 建议
禁止直接在对象上调用某些 Object.prototype
方法
✅ 扩展
💡 建议
禁止左右两侧完全相同的赋值
✅ 扩展
禁止左右两侧完全相同的比较
禁止从 setter 返回值
✅ 扩展
禁止稀疏数组
✅ 扩展
禁止在常规字符串中使用模板字面量占位符语法
禁止在构造函数中在调用 super()
之前使用 this
/super
✅ 扩展
禁止使用未声明的变量,除非在 /*global */
注释中提及
✅ 扩展
禁止令人困惑的多行表达式
✅ 扩展
禁止未修改的循环条件
禁止在 return
、throw
、continue
和 break
语句之后出现不可访问的代码
✅ 扩展
禁止循环体只允许一次迭代的循环
禁止在 finally
块中使用控制流语句
✅ 扩展
禁止否定关系运算符的左操作数
✅ 扩展
💡 建议
禁止在不允许 undefined
值的情况下使用可选链
✅ 扩展
禁止未使用的私有类成员
✅ 扩展
禁止未使用的变量
✅ 扩展
💡 建议
禁止在变量定义之前使用它们
禁止在未使用值时进行变量赋值
禁止在正则表达式中出现无用的反向引用
✅ 扩展
禁止由于使用 await
或 yield
而可能导致竞争条件的赋值
在检查 NaN
时要求调用 isNaN()
✅ 扩展
💡 建议
强制将 typeof
表达式与有效的字符串进行比较
✅ 扩展
💡 建议
这些规则建议了其他做事方式
强制在对象和类中使用 getter 和 setter 对
❄️ 冻结
要求箭头函数体周围使用大括号
🔧 修复
强制在变量定义的作用域内使用变量
❄️ 冻结
强制使用驼峰命名约定
❄️ 冻结
强制或禁止注释首字母大写
🔧 修复
强制类方法使用 this
强制程序中允许的最大循环复杂度
要求 return
语句始终或从不指定值
❄️ 冻结
强制在捕获当前执行上下文时使用一致的命名
❄️ 冻结
强制所有控制语句使用一致的大括号风格
🔧 修复
在 switch
语句中要求 default
case
强制 switch
语句中的 default
子句放在最后
❄️ 冻结
强制默认参数放在最后
❄️ 冻结
尽可能强制使用点表示法
🔧 修复
要求使用 ===
和 !==
🔧 修复
❄️ 冻结
要求函数名与分配给它们的变量或属性的名称匹配
要求或禁止命名的 function
表达式
❄️ 冻结
强制一致使用 function
声明或赋值给变量的表达式
要求在对象字面量和类中分组访问器对
要求 for-in
循环包含 if
语句
❄️ 冻结
禁用指定的标识符
❄️ 冻结
强制最小和最大标识符长度
❄️ 冻结
要求标识符与指定的正则表达式匹配
❄️ 冻结
要求或禁止在变量声明中进行初始化
要求或禁止逻辑赋值运算符简写
🔧 修复
💡 建议
强制每个文件的最大类数
强制块可以嵌套的最大深度
强制每个文件的最大行数
强制函数中代码的最大行数
强制回调可以嵌套的最大深度
强制函数定义中参数的最大数量
强制函数块中允许的最大语句数
要求构造函数名称以大写字母开头
禁用 alert
、confirm
和 prompt
的使用
禁用 Array
构造函数
💡 建议
禁用位运算符
禁用 arguments.caller
或 arguments.callee
的使用
禁止在 case 子句中使用词法声明
✅ 扩展
💡 建议
禁用 console
的使用
💡 建议
❄️ 冻结
禁用 continue
语句
禁止删除变量
✅ 扩展
❄️ 冻结
禁止在正则表达式开头显式使用等号
🔧 修复
❄️ 冻结
在 if
语句中,当有 return
语句后禁止使用 else
块
🔧 修复
禁止空块语句
✅ 扩展
💡 建议
禁止空函数
禁止空静态块
✅ 扩展
禁止在没有类型检查运算符的情况下进行 null
比较
禁用 eval()
的使用
禁止扩展原生类型
禁止不必要的 .bind()
调用
🔧 修复
❄️ 冻结
禁止不必要的布尔类型转换
✅ 扩展
🔧 修复
❄️ 冻结
禁止不必要的标签
🔧 修复
禁止赋值给原生对象或只读全局变量
✅ 扩展
❄️ 冻结
禁止简写类型转换
🔧 修复
💡 建议
禁止在全局作用域中声明
禁用类似 eval()
的方法
❄️ 冻结
禁止在代码后添加内联注释
禁止在 this
值为 undefined
的上下文中使用 this
禁止使用 __iterator__
属性
❄️ 冻结
禁止标签与变量共享名称
❄️ 冻结
禁止标签语句
禁止不必要的嵌套块
❄️ 冻结
禁止 if
语句作为 else
块中唯一的语句
🔧 修复
禁止在循环语句内部包含不安全引用的函数声明
❄️ 冻结
禁止魔术数字
禁止使用链式赋值表达式
❄️ 冻结
禁止多行字符串
❄️ 冻结
禁止否定条件
❄️ 冻结
禁止嵌套的三元表达式
禁止在赋值或比较之外使用 new
运算符
禁止对 Function
对象使用 new
运算符
禁止对 String
、Number
和 Boolean
对象使用 new
运算符
禁止字符串字面量中的 \8
和 \9
转义序列
✅ 扩展
💡 建议
禁止在没有参数的情况下调用 Object
构造函数
💡 建议
禁止八进制字面量
✅ 扩展
禁止字符串字面量中的八进制转义序列
禁止重新赋值函数参数
❄️ 冻结
禁用一元运算符 ++
和 --
禁止使用 __proto__
属性
禁止变量的重复声明
✅ 扩展
禁止在正则表达式中出现多个空格
✅ 扩展
🔧 修复
禁止在导出中使用指定的名称
禁用指定的全局变量
当通过 import
加载时,禁止指定的模块
禁止某些对象上的某些属性
禁止指定的语法
禁止在 return
语句中使用赋值运算符
禁止 javascript:
URL
禁止逗号运算符
禁止变量声明从外部作用域中声明的变量中获取阴影
禁止标识符从受限名称中获取阴影
✅ 扩展
❄️ 冻结
禁止三元运算符
禁止抛出字面量作为异常
❄️ 冻结
禁止将变量初始化为 undefined
🔧 修复
❄️ 冻结
禁止将 undefined
用作标识符
❄️ 冻结
禁止在标识符中使用悬空下划线
❄️ 冻结
当存在更简单的替代方案时,禁止使用三元运算符
🔧 修复
禁止未使用的表达式
禁止未使用的标签
✅ 扩展
🔧 修复
禁止不必要的 .call()
和 .apply()
调用
禁止不必要的 catch
子句
✅ 扩展
❄️ 冻结
禁止在对象和类中使用不必要的计算属性键
🔧 修复
❄️ 冻结
禁止不必要的字面量或模板字面量连接
禁止不必要的构造函数
💡 建议
禁止不必要的转义字符
✅ 扩展
💡 建议
禁止将导入、导出和解构赋值重命名为相同的名称
🔧 修复
禁止冗余的 return 语句
🔧 修复
要求使用 let
或 const
而不是 var
🔧 修复
❄️ 冻结
禁止 void
运算符
❄️ 冻结
禁止在注释中出现指定的警告术语
禁止 with
语句
✅ 扩展
❄️ 冻结
要求或禁止对象字面量的方法和属性简写语法
🔧 修复
❄️ 冻结
强制变量在函数中一起或单独声明
🔧 修复
❄️ 冻结
在可能的情况下,要求或禁止赋值运算符简写
🔧 修复
❄️ 冻结
要求为回调使用箭头函数
🔧 修复
对于声明后不再重新赋值的变量,要求使用 const
声明
🔧 修复
❄️ 冻结
要求从数组和/或对象进行解构
🔧 修复
禁止使用 Math.pow
,而推荐使用 **
运算符
🔧 修复
强制在正则表达式中使用命名捕获组
💡 建议
❄️ 冻结
禁止使用 parseInt()
和 Number.parseInt()
,而推荐使用二进制、八进制和十六进制字面量
🔧 修复
禁止使用 Object.prototype.hasOwnProperty.call()
,而推荐使用 Object.hasOwn()
🔧 修复
❄️ 冻结
禁止将对象字面量用作第一个参数来使用 Object.assign
,而推荐使用对象展开运算符
🔧 修复
要求使用 Error 对象作为 Promise 拒绝的原因
禁止使用 RegExp
构造函数,而推荐使用正则表达式字面量
💡 建议
要求使用剩余参数而不是 arguments
❄️ 冻结
要求使用展开运算符而不是 .apply()
❄️ 冻结
要求使用模板字面量而不是字符串连接
🔧 修复
强制在使用 parseInt()
时始终使用基数参数
💡 建议
禁止没有 await
表达式的异步函数
💡 建议
强制在正则表达式上使用 u
或 v
标志
💡 建议
要求生成器函数包含 yield
✅ 扩展
❄️ 冻结
强制模块内的 import
声明进行排序
🔧 修复
❄️ 冻结
要求对象键进行排序
❄️ 冻结
要求在同一声明块中的变量进行排序
🔧 修复
要求或禁止严格模式指令
🔧 修复
要求 symbol 描述
❄️ 冻结
要求 var
声明放在其包含作用域的顶部
❄️ 冻结
要求或禁止 “Yoda” 条件
🔧 修复
这些规则关心代码的外观而不是其执行方式
要求或禁止 Unicode 字节顺序标记 (BOM)
🔧 修复
这些规则已根据弃用政策弃用,并被较新的规则取代
array-bracket-newline 已弃用
❌
🔧 修复
array-bracket-spacing 已弃用
❌
🔧 修复
array-element-newline 已弃用
❌
🔧 修复
arrow-parens 已弃用
已替换为 arrow-parens
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
arrow-spacing 已弃用
已替换为 arrow-spacing
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
block-spacing 已弃用
已替换为 block-spacing
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
brace-style 已弃用
已替换为 brace-style
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
callback-return 已弃用
已替换为 callback-return
在 eslint-plugin-n
中
❌
comma-dangle 已弃用
已替换为 comma-dangle
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
comma-spacing 已弃用
已替换为 comma-spacing
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
comma-style 已弃用
已替换为 comma-style
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
computed-property-spacing 已弃用
已替换为 computed-property-spacing
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
dot-location 已弃用
已替换为 dot-location
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
eol-last 已弃用
已替换为 eol-last
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
func-call-spacing 已弃用
❌
🔧 修复
function-call-argument-newline 已弃用
已替换为 function-call-argument-newline
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
function-paren-newline 已弃用
❌
🔧 修复
generator-star-spacing 已弃用
❌
🔧 修复
global-require 已弃用
已替换为 global-require
在 eslint-plugin-n
中
❌
handle-callback-err 已弃用
已替换为 handle-callback-err
在 eslint-plugin-n
中
❌
id-blacklist 已弃用
已替换为 id-denylist
❌
implicit-arrow-linebreak 已弃用
已替换为 implicit-arrow-linebreak
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
indent 已弃用
已替换为 indent
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
indent-legacy 已弃用
已替换为 indent
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
jsx-quotes 已弃用
已替换为 jsx-quotes
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
key-spacing 已弃用
已替换为 key-spacing
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
keyword-spacing 已弃用
❌
🔧 修复
line-comment-position 已弃用
❌
linebreak-style 已弃用
❌
🔧 修复
lines-around-comment 已弃用
❌
🔧 修复
lines-around-directive 已弃用
已替换为 padding-line-between-statements
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
lines-between-class-members 已弃用
已替换为 lines-between-class-members
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
max-len 已弃用
已替换为 max-len
在 @stylistic/eslint-plugin-js
中
❌
max-statements-per-line 已弃用
已替换为 max-statements-per-line
在 @stylistic/eslint-plugin-js
中
❌
multiline-comment-style 已弃用
已替换为 multiline-comment-style
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
multiline-ternary 已弃用
❌
🔧 修复
new-parens 已弃用
已替换为 new-parens
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
newline-after-var 已弃用
已替换为 padding-line-between-statements
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
newline-before-return 已弃用
已替换为 padding-line-between-statements
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
newline-per-chained-call 已弃用
已替换为 newline-per-chained-call
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
no-buffer-constructor 已弃用
已替换为 no-deprecated-api
在 eslint-plugin-n
中
❌
no-catch-shadow 已弃用
已替换为 no-shadow
❌
no-confusing-arrow 已弃用
❌
🔧 修复
no-extra-parens 已弃用
❌
🔧 修复
no-extra-semi 已弃用
已替换为 no-extra-semi
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
no-floating-decimal 已弃用
❌
🔧 修复
no-mixed-operators 已弃用
❌
no-mixed-requires 已弃用
已替换为 no-mixed-requires
在 eslint-plugin-n
❌
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-object 已弃用
❌
no-new-require 已弃用
已替换为 no-new-require
在 eslint-plugin-n
❌
no-new-symbol 已弃用
❌
no-path-concat 已弃用
已替换为 no-path-concat
在 eslint-plugin-n
❌
no-process-env 已弃用
已替换为 no-process-env
在 eslint-plugin-n
❌
no-process-exit 已弃用
已替换为 no-process-exit
在 eslint-plugin-n
❌
no-restricted-modules 已弃用
❌
no-return-await 已弃用
❌
💡 建议
no-spaced-func 已弃用
❌
🔧 修复
no-sync 已弃用
已替换为 no-sync
在 eslint-plugin-n
❌
no-tabs 已弃用
❌
no-trailing-spaces 已弃用
❌
🔧 修复
no-whitespace-before-property 已弃用
已替换为 no-whitespace-before-property
在 @stylistic/eslint-plugin-js
❌
🔧 修复
nonblock-statement-body-position 已弃用
已替换为 nonblock-statement-body-position
在 @stylistic/eslint-plugin-js
❌
🔧 修复
object-curly-newline 已弃用
❌
🔧 修复
object-curly-spacing 已弃用
❌
🔧 修复
object-property-newline 已弃用
❌
🔧 修复
one-var-declaration-per-line 已弃用
已替换为 one-var-declaration-per-line
在 @stylistic/eslint-plugin-js
❌
🔧 修复
operator-linebreak 已弃用
❌
🔧 修复
padded-blocks 已弃用
❌
🔧 修复
padding-line-between-statements 已弃用
已替换为 padding-line-between-statements
在 @stylistic/eslint-plugin-js
中
❌
🔧 修复
prefer-reflect 已弃用
❌
quote-props 已弃用
❌
🔧 修复
quotes 已弃用
❌
🔧 修复
rest-spread-spacing 已弃用
❌
🔧 修复
semi 已弃用
已替换为 semi
在 @stylistic/eslint-plugin-js
❌
🔧 修复
semi-spacing 已弃用
❌
🔧 修复
semi-style 已弃用
❌
🔧 修复
space-before-blocks 已弃用
❌
🔧 修复
space-before-function-paren 已弃用
已替换为 space-before-function-paren
在 @stylistic/eslint-plugin-js
❌
🔧 修复
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 的规则(在 弃用策略 存在之前)已被新规则取代
generator-star 已移除
global-strict 已移除
已替换为 strict
no-arrow-condition 已移除
no-comma-dangle 已移除
已替换为 comma-dangle
no-empty-class 已移除
no-empty-label 已移除
已替换为 no-labels
no-extra-strict 已移除
已替换为 strict
no-reserved-keys 已移除
已替换为 quote-props
no-space-before-semi 已移除
已替换为 semi-spacing
no-wrap-func 已移除
已替换为 no-extra-parens
space-after-function-name 已移除
space-after-keywords 已移除
已替换为 keyword-spacing
space-before-function-parentheses 已移除
space-before-keywords 已移除
已替换为 keyword-spacing
space-in-brackets 已移除
space-return-throw-case 已移除
已替换为 keyword-spacing
space-unary-word-ops 已移除
已替换为 space-unary-ops
spaced-line-comment 已移除
已替换为 spaced-comment
valid-jsdoc 已移除
require-jsdoc 已移除