ESLint规则

ESLint

规则

ESLint中的规则按类别分组,以帮助您了解它们的用途。

默认情况下未启用任何规则。配置文件中的"extends": "eslint:recommended"属性启用报告常见问题的规则,这些规则带有复选标记 以下。

在--fix上选项命令行受到有扳手规则报告自动修复问题(空格目前大部分) 以下。

可能的错误

这些规则与JavaScript代码中可能的语法或逻辑错误有关:

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

getter-return 在吸气剂中执行return语句

no-async-promise-executor 禁止将异步功能用作Promise执行器

no-await-in-loop 在循环内禁止await

no-compare-neg-zero 不允许与-0比较

no-cond-assign 禁止条件表达式中的赋值运算符

no-console 禁止使用“控制台”

no-constant-condition 禁止条件中的常量表达式

no-control-regex 禁止在正则表达式中使用控制字符

no-debugger 禁止使用debugger

no-dupe-args 禁止在function定义中重复参数

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

no-dupe-keys 禁止在对象文字中使用重复键

no-duplicate-case 禁止重复的案例标签

no-empty 禁止空块语句

no-empty-character-class 禁止在正则表达式中使用空字符类

no-ex-assign 禁止在catch子句中重新分配异常

no-extra-boolean-cast 禁止不必要的布尔类型转换

no-extra-parens 禁止不必要的括号

no-extra-semi 禁止不必要的分号

no-func-assign 禁止重新分配function声明

no-import-assign 禁止分配给导入的绑定

no-inner-declarations 禁止在嵌套块中使用变量或函数声明

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

no-irregular-whitespace 禁止不规则空格

no-loss-of-precision 禁止丢失精度的文字数字

no-misleading-character-class 禁止使用字符类语法中由多个代码点组成的字符

no-obj-calls 禁止将全局对象属性作为函数调用

no-promise-executor-return 禁止从Promise执行器函数返回值

no-prototype-builtins 不允许直接在对象上调用某些Object.prototype方法

no-regex-spaces 禁止在正则表达式中使用多个空格

no-setter-return 禁止从设置器返回值

no-sparse-arrays 禁止稀疏数组

no-template-curly-in-string 禁止在常规字符串中使用模板文字占位符语法

no-unexpected-multiline 禁止混淆多行表达式

no-unreachable 在returnthrowcontinuebreak语句之后禁止不可访问的代码

no-unreachable-loop 不允许仅允许一次迭代的主体进行循环

no-unsafe-finally 禁止在“ finally”块中使用控制流语句

no-unsafe-negation 不允许否定关系运算符的左操作数

no-unsafe-optional-chaining 禁止在不允许使用“ undefined”值的情况下使用可选链接

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

require-atomic-updates 禁止由于使用“ await”或“ yield”而导致比赛状态的作业

use-isnan 在检查“ NaN”时需要调用“ isNaN()”

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

最佳实践

这些规则与更好的处事方式有关,可帮助您避免出现问题:

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

array-callback-return 在数组方法的回调中强制执行“ return”语句

block-scoped-var 在定义变量的范围内强制使用变量

class-methods-use-this 强制类方法使用this

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

consistent-return 要求return语句始终或永不指定值

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

default-case 在switch语句中需要default的情况

default-case-last 将switch语句中的默认子句强制为最后

default-param-last 强制默认参数为最后

dot-location 在点之前和之后强制执行一致的换行符

dot-notation 尽可能执行点符号

eqeqeq 要求使用===!==

grouped-accessor-pairs 需要对象文字和类中的分组访问器对

guard-for-in 需要for-in循环来包含if语句

max-classes-per-file 在每个文件中强制使用最大数量的类

no-alert 禁止使用“警告”,“确认”和“提示”

no-caller 禁止使用arguments.callerarguments.callee

no-case-declarations 禁止在case子句中进行词汇声明

no-constructor-return 禁止从构造函数返回值

no-div-regex 在正则表达式的开头明确禁止除法运算符

no-else-return 禁止在if语句中的return语句后使用else块

no-empty-function 禁止空函数

no-empty-pattern 禁止使用空的销毁模式

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

no-eval 禁止使用eval()

no-extend-native 禁止扩展本机类型

no-extra-bind 禁止不必要地调用.bind()

no-extra-label 禁止不必要的标签

no-fallthrough 禁止case语句失败

no-floating-decimal 禁止数字文字中的前导或尾随小数点

no-global-assign 禁止分配给本机对象或只读全局变量

no-implicit-coercion 禁止速记类型转换

no-implicit-globals 禁止在全球范围内声明

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

no-invalid-this 在类或类对象之外禁止this关键字

no-iterator 禁止使用__iterator__属性

no-labels 禁止带有标签的陈述

no-lone-blocks 禁止不必要的嵌套块

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

no-magic-numbers 禁止魔术数字

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转义序列

no-octal 禁止使用八进制字面量

no-octal-escape 禁止在字符串文字中使用八进制转义序列

no-param-reassign 禁止重新分配“功能”参数

no-proto 禁止使用__proto__属性

no-redeclare 禁止变量重新声明

no-restricted-properties 禁止某些对象的某些属性

no-return-assign 在return语句中禁止赋值运算符

no-return-await 禁止不必要的“返回等待”

no-script-url 禁止使用javascript:网址

no-self-assign 不允许双方完全相同的作业

no-self-compare 不允许在双方完全相同的情况下进行比较

no-sequences 禁止逗号运算符

no-throw-literal 禁止将文字作为异常抛出

no-unmodified-loop-condition 禁止未经修改的循环条件

no-unused-expressions 禁止未使用的表达式

no-unused-labels 禁止使用未使用的标签

no-useless-call 禁止不必要地调用.call().apply()

no-useless-catch 禁止不必要的catch子句

no-useless-concat 禁止不必要的串联文字或模板文字

no-useless-escape 禁止不必要的转义字符

no-useless-return 禁止多余的返回语句

no-void 禁止void运算符

no-warning-comments 禁止在评论中使用指定的警告词

no-with 禁止with语句

prefer-named-capture-group 在正则表达式中使用命名的捕获组来强制执行

prefer-promise-reject-errors 要求使用错误对象作为承诺拒绝原因

prefer-regex-literals 禁止使用RegExp构造函数,而使用正则表达式文字

radix 在使用parseInt()时强制使用基数参数的一致用法

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

require-unicode-regexp 在RegExp上强制使用u标志

vars-on-top 要求将var声明放在其包含范围的顶部

wrap-iife 在立即调用“ function”时需要括号

yoda 要求或禁止“ Yoda”条件

严格模式

这些规则与严格模式指令有关:

strict 要求或禁止严格模式指令

变数

这些规则与变量声明有关:

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 在定义变量之前禁止使用变量

文体问题

这些规则与样式准则有关,因此非常主观:

array-bracket-newline 在打开和关闭数组括号之后强制换行

array-bracket-spacing 在数组括号内强制使用一致的间距

array-element-newline 在每个数组元素后强制换行

block-spacing 在打开块之后和关闭块之前禁止或强制在块内使用空格

brace-style 对块实施一致的支撑样式

camelcase 强制驼峰命名约定

capitalized-comments 强制或禁止将评论的首字母大写

comma-dangle 要求或禁止尾随逗号

comma-spacing 在逗号前后强制保持一致的间距

comma-style 强制使用一致的逗号样式

computed-property-spacing 在计算的属性括号内强制使用一致的间距

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

eol-last 在文件末尾要求或禁止换行

func-call-spacing 要求或不允许在函数标识符及其调用之间使用空格

func-name-matching 要求函数名称与为其分配的变量或属性的名称匹配

func-names 要求或禁止命名的“功能”表达式

func-style 强制使用function声明或表达式的一致用法

function-call-argument-newline 在函数调用的参数之间强制换行

function-paren-newline 在函数括号内强制使用一致的换行符

id-denylist 禁止指定的标识符

id-length 强制最小和最大标识符长度

id-match 需要标识符以匹配指定的正则表达式

implicit-arrow-linebreak 强制箭头功能体的位置

indent 强制一致的缩进

jsx-quotes 强制在JSX属性中一致使用双引号或单引号

key-spacing 在对象文字属性中的键和值之间强制保持一致的间距

keyword-spacing 在关键字前后强制保持一致的间距

line-comment-position 强制行注释的位置

linebreak-style 强制使用一致的换行符样式

lines-around-comment 在评论周围要求空行

lines-between-class-members 要求或禁止班级成员之间的空白行

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

max-len 强制最大行长

max-lines 强制每个文件最大行数

max-lines-per-function 强制执行函数中的最大代码行数

max-nested-callbacks 强制回调可以嵌套的最大深度

max-params 在函数定义中强制使用最大数量的参数

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

max-statements-per-line 强制每行允许的最大语句数

multiline-comment-style 对多行注释实施特定样式

multiline-ternary 在三元表达式的操作数之间强制换行

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

new-parens 调用不带参数的构造方法时,强制或禁止使用括号

newline-per-chained-call 在方法链中的每次调用之后都需要换行

no-array-constructor 禁止使用Array构造函数

no-bitwise 禁止按位运算符

no-continue 禁止使用“ continue”语句

no-inline-comments 禁止在代码后插入行内注释

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构造函数

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 在打开括号后和关闭括号之前强制使用一致的换行符

object-curly-spacing 在花括号内强制保持一致的间距

object-property-newline 强制将对象属性放在单独的行上

one-var 强制在函数中一起或分别声明变量

one-var-declaration-per-line 要求或禁止在变量声明周围使用换行符

operator-assignment 在可能的情况下要求或不允许赋值运算符速记

operator-linebreak 对操作员实施一致的换行样式

padded-blocks 要求或禁止在块内填充

padding-line-between-statements 要求或禁止语句之间的填充线

prefer-exponentiation-operator 禁止使用Math.pow来支持**运算符

prefer-object-spread 禁止将Object.assign与对象文字一起用作第一个参数,而更喜欢使用对象传播。

quote-props 要求在对象文字属性名称周围加上引号

quotes 强制使用反引号,双引号或单引号的一致使用

semi 要求或禁止使用分号代替ASI

semi-spacing 在分号之前和之后强制保持一致的间距

semi-style 强制分号的位置

sort-keys 要求对对象键进行排序

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

space-before-blocks 在块之前强制保持一致的间距

space-before-function-paren 在“ function”定义打开括号之前强制执行一致的间距

space-in-parens 强制括号内的间距一致

space-infix-ops 需要在中缀运算符之间留有间距

space-unary-ops 在一元运算符之前或之后强制执行一致的间距

spaced-comment 在注释中的“ //”或“ / *”之后强制保持一致的间距

switch-colon-spacing 在switch语句的冒号之间强制使用空格

template-tag-spacing 在模板标签及其文字之间需要或不允许使用空格

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

wrap-regex 在正则表达式文字周围需要括号

ECMAScript 6

这些规则与ES6(也称为ES2015)有关:

arrow-body-style 在箭头功能主体周围需要大括号

arrow-parens 在箭头函数参数周围需要括号

arrow-spacing 在箭头函数中的箭头前后强制保持一致的间距

constructor-super 在构造函数中需要super()调用

generator-star-spacing 在生成器函数中的*运算符周围强制保持一致的间距

no-class-assign 禁止重新分配班级成员

no-confusing-arrow 禁止将箭头功能与比较混淆的地方

no-const-assign 禁止重新分配const变量

no-dupe-class-members 禁止重复的班级成员

no-duplicate-imports 禁止重复的模块导入

no-new-symbol 用Symbol对象禁止new操作符

no-restricted-exports 禁止在出口中指定名称

no-restricted-imports 当由import加载时,禁止指定的模块

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

no-useless-computed-key 禁止在对象和类中使用不必要的计算属性键

no-useless-constructor 禁止不必要的构造函数

no-useless-rename 禁止将导入,导出和重组的分配重命名为相同的名称

no-var 需要letconst而不是var

object-shorthand 要求或禁止对象文字的方法和属性速记语法

prefer-arrow-callback 需要使用箭头函数进行回调

prefer-const 对于声明后永远不会重新分配的变量,需要使用const声明

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

prefer-numeric-literals 禁止使用parseInt()和Number.parseInt()支持二进制,八进制和十六进制文字

prefer-rest-params 需要rest参数而不是arguments

prefer-spread 需要使用散布运算符,而不是.apply()

prefer-template 需要模板文字而不是字符串连接

require-yield 要求生成器函数包含yield

rest-spread-spacing 强制休息和散布算子及其表达式之间的间隔

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

symbol-description 需要符号说明

template-curly-spacing 要求或不允许在模板字符串的嵌入表达式周围留空格

yield-star-spacing 在Yield 表达式中的周围需要或不允许使用空格

不推荐使用

这些规则已根据弃用策略弃用,并由较新的规则代替:

Deprecated rule 取而代之

callback-return 回调返回

(no replacement) (无替代)

global-require 全球需求

(no replacement) (无替代)

handle-callback-err 处理回调错误

(no replacement) (无替代)

id-blacklist id拒绝列表

indent-legacy 缩进

lines-around-directive 语句之间的填充线

newline-after-var 语句之间的填充线

newline-before-return 语句之间的填充线

no-buffer-constructor 无缓冲构造函数

(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 无进程环境

(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的这些规则(在存在弃用策略之前)已由新规则替换:

Removed rule 取而代之

generator-star 发电机星空

global-strict 严格的

no-arrow-condition 无混淆箭头 无常数条件

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 关键字间距

space-before-function-parentheses 功能前的空格

space-before-keywords 关键字间距

space-in-brackets 对象卷曲间距 数组间距

space-return-throw-case 关键字间距

space-unary-word-ops 一元空间

spaced-line-comment 空格注释

你可能感兴趣的:(ESLint规则)