摘要:规则简介花了一天整理的,可能部分翻译的有错误,后面会再校对一次规则说明默认情况下不会启用任何规则。
eslint V4.1.1 规则简介
花了一天整理的,可能部分翻译的有错误,后面会再校对一次
规则说明:默认情况下不会启用任何规则。配置文件中的"extends":"eslint:recommended"属性可以启用一些默认的验证规则,默认的规则在下表会用R表示出来
使用--fix命令可以自动修复一些特定的规则(大部分为空格类规则),下面用F表示
规则说明0=off,1=warn, 2=error
可能性的错误这些规则主要针对语法错误和逻辑错误
参数 | 描述 | 备注 | 例子 |
---|---|---|---|
for-direction | for循环 需要往正确的方向循环,避免死循环 | 案例 | |
no-await-in-loop | 禁止循环中有 await | 案例 | |
no-compare-neg-zero | 禁止和 -0 比较 | R | 案例 |
no-cond-assign | 禁止在条件表达式使用赋值 | R | 案例 |
no-console | 禁止使用console | R | 案例 |
no-constant-condition | 禁止在条件中使用常量表达式 | R | 案例 |
no-control-regex | 禁止在正则中使用控制字符 | R | 案例 |
no-debugger | 禁止使用debugger | R F | 案例 |
no-dupe-args | 禁止在函数定义中传入重复的参数 | R | 案例 |
no-dupe-keys | 禁止在对象字面量中使用重复的key | R | 案例 |
no-duplicate-case | 禁止在case中出现重复的标签 | R | 案例 |
no-empty | 禁止块语句中的内容为空 | R | 案例 |
no-empty-character-class | 禁止正则表达式中的[]内容为空 | R | 案例 |
no-ex-assign | 禁止给catch语句中的异常参数赋值 | R | 案例 |
no-extra-boolean-cast | 禁止不必要的bool转换 | R F | 案例 |
no-extra-parens | 禁止不需要的括号 | F | 案例 |
no-extra-semi | 禁止多余的分号 | R F | 案例 |
no-func-assign | 禁止重复的函数声明 | R | 案例 |
no-inner-declarations | 禁止在块语句中使用声明(变量或函数) | R | 案例 |
no-invalid-regexp | 禁止无效的正则 | R | 案例 |
no-irregular-whitespace | 禁止不统一的空格 | R | 案例 |
no-obj-calls | 禁止重定义内置全局对象 | R | 案例 |
no-prototype-builtins | 禁止在对象上直接调用object.prototype方法 | 案例 | |
no-regex-spaces | 禁止在正则表达式字面量中使用多个空格 | R F | 案例 |
no-sparse-arrays | 禁止稀疏数组 | R | 案例 |
no-template-curly-in-string | 禁止在模板中使用不同的符号 | 案例 | |
no-unexpected-multiline | 禁止多行表达式 | R | 案例 |
no-unreachable | 禁止写无法执行的代码(return,throw,contine,break) | R | 案例 |
no-unsafe-finally | 禁止在finally中使用return,throw,contine,break | R | 案例 |
no-unsafe-negation | 禁止在运算符左侧执行关系运算 | R F | 案例 |
use-isnan | 禁止比较时使用NaN,只能用isNaN() | R | 案例 |
valid-jsdoc | 强制验证jsdoc规则 | 案例 | |
valid-typeof | 强制使用合法的typeof的值 | R | 案例 |
这些规则是能够帮助你避免一些问题的最好方法
参数 | 描述 | 备注 | 例子 |
---|---|---|---|
accessor-pairs | 强制在对象中使用getter/setter | 案例 | |
array-callback-return | 强制在数组方法的回调中执行return | 案例 | |
block-scoped-var | 强制使用它们定义的范围内的变量 | 案例 | |
class-methods-use-this | 强制该类方法利用 this | 案例 | |
complexity | 强制设置一个循环的最大值 | 案例 | |
consistent-return | 要求return语句要么始终有值要么始终没值 | 案例 | |
curly | 强制所有控制语句执行统一的括号风格 | F | 案例 |
default-case | switch语句中需要有default值 | 案例 | |
dot-location | 强制在点之前和之后执行一致的换行符 | F | 案例 |
dot-notation | 强制使用.符号,避免[] | F | 案例 |
eqeqeq | 使用 === 和 !== | F | 案例 |
guard-for-in | for in循环要用if语句过滤 | 案例 | |
no-alert | 禁止使用alert,confirm,prompt | 案例 | |
no-caller | 禁止使用arguments.caller或 arguments.callee | 案例 | |
no-case-declarations | 禁止在case子句中使用词法声明,一定要用,封装在块中 | R | 案例 |
no-div-regex | 禁止在正则表达式开头用除法 | 案例 | |
no-else-return | if语句里面有return,后面禁止跟else语句 | F | 案例 |
no-empty-function | 禁止空函数 | 案例 | |
no-empty-pattern | 禁止空的解构模式 | R | 案例 |
no-eq-null | 禁止用类型检查运算符和null比较 | 案例 | |
no-eval | 禁止使用eval() | 案例 | |
no-extend-native | 禁止扩展native类型 | 案例 | |
no-extra-bind | 禁止非必要的函数绑定 | F | 案例 |
no-extra-label | 禁止非必要的label | F | 案例 |
no-fallthrough | 禁止switch穿透 | R | 案例 |
no-floating-decimal | 禁止省略浮点数中的0 | F | 案例 |
no-global-assign | 禁止对本地对象或只读全局变量重定义 | R | 案例 |
no-implicit-coercion | 禁止隐式转换 | F | 案例 |
no-implicit-globals | 禁止在全局范围内声明变量和函数 | 案例 | |
no-implied-eval | 禁止使用隐式eval | 案例 | |
no-invalid-this | 禁止无效的this,只能用在构造器,类,对象字面量 | 案例 | |
no-extra-label | 禁止非必要的label | F | 案例 |
no-iterator | 禁止使用__iterator__ 属性 | 案例 | |
no-labels | 禁止标签声明 | 案例 | |
no-lone-blocks | 禁止非必要的嵌套块 | F | 案例 |
no-loop-func | 禁止在循环中使用函数(如果没有引用外部变量不形成闭包就可以) | 案例 | |
no-magic-numbers | 禁止魔数字(硬写到代码里的数字常量) | 案例 | |
no-multi-spaces | 禁止多个空格) | F | 案例 |
no-multi-str | 禁止多行字符串(不能用/换行) | 案例 | |
no-new | 禁止在使用new构造一个实例后不赋值 | 案例 | |
no-new-func | 禁止使用new Function | 案例 | |
no-new-wrappers | 禁止使用new创建包装实例,new String new Boolean new Number | 案例 | |
no-octal | 禁止使用八进制数字 | R | 案例 |
no-octal-escape | 禁止使用八进制转义序列 | 案例 | |
no-param-reassign | 禁止重新定义参数 | 案例 | |
no-proto | 禁止使用__proto__ | 案例 | |
no-redeclare | 禁止重复声明变量 | R | 案例 |
no-restricted-properties | 禁止在一些特定的对象上的特定属性 | 案例 | |
no-return-assign | return 语句中不能有赋值表达式 | 案例 | |
no-return-await | 禁止非必要的return await | 案例 | |
no-script-url | 禁止使用javascript:void(0) | R | 案例 |
no-self-assign | 禁止双方完全一致的任务 | R | 案例 |
no-self-compare | 禁止比较自身 | 案例 | |
no-sequences | 禁止使用逗号运算符 | 案例 | |
no-throw-literal | 禁止抛出字面量错误 throw "error"; | 案例 | |
no-unmodified-loop-condition | 禁止不变的循环条件 | 案例 | |
no-unused-expressions | 禁止无用的表达式 | 案例 | |
no-unused-labels | 禁止不用的label | R F | 案例 |
no-useless-call | 禁止非必要的call和apply | 案例 | |
no-useless-concat | 禁止不必要的连接文字或模板文字 | 案例 | |
no-useless-escape | 禁止不必要的转义字符 | R | 案例 |
no-void | 禁止使用void | 案例 | |
no-warning-comments | 禁止有警告备注 | 案例 | |
no-with | 禁止使用with声明 | 案例 | |
prefer-promise-reject-errors | 使用error对象作为Promise驳回原因 | 案例 | |
radix | parseInt必须指定第二个参数 | 案例 | |
require-await | 禁止async中无await表达式 | 案例 | |
vars-on-top | var必须放在作用域顶部 | 案例 | |
wrap-iife | 立即执行函数表达式的小括号风格 | F | 案例 |
yoda | 禁止尤达条件 | F | 案例 |
这些规则是能够帮助你避免一些问题的最好方法
参数 | 描述 | 备注 | 例子 |
---|---|---|---|
strict | 使用严格模式 | F | 案例 |
这些规则与变量声明有关
参数 | 描述 | 备注 | 例子 |
---|---|---|---|
init-declarations | 声明时必须赋初值 | 案例 | |
no-catch-shadow | 禁止catch子句参数与外部作用域变量同名 | 案例 | |
no-delete-var | 禁止删除变量 | R | 案例 |
no-label-var | 禁止label名与var声明的变量名相同 | 案例 | |
no-restricted-globals | 禁止指定的全局变量 | 案例 | |
no-shadow | 禁止外部作用域中的变量与它所包含的作用域中的变量或参数同名 | 案例 | |
no-shadow-restricted-names | 严格模式中规定的限制标识符不能作为声明时的变量名使用 | 案例 | |
no-undef | 不能有未定义的变量,除非在/global /注释中 | R | 案例 |
no-undef-init | 禁止将变量初始化为undefined | F | 案例 |
no-undefined | 禁止使用undefined作为标识符 | 案例 | |
no-unused-vars | 禁止未使用的变量 | R | 案例 |
no-use-before-define | 禁止在定义之前使用变量 | 案例 |
这些规则与在Node.js中运行的代码相关联,或与使用CommonJS的浏览器相关:
参数 | 描述 | 备注 | 例子 |
---|---|---|---|
callback-return | 避免多次调用回调 | 案例 | |
global-require | 需要将require()调用放置在模块顶部 | 案例 | |
handle-callback-err | 在回调中需要错误处理 | 案例 | |
no-buffer-constructor | 禁止使用Buffer()构造函数 | 案例 | |
no-mixed-requires | 不允许调用与常规变量声明混合 | 案例 | |
no-new-require | 禁止使用new require | 案例 | |
no-path-concat | 禁止使用__dirname和__filename连接字符串 | 案例 | |
no-process-env | 禁止使用process.env | 案例 | |
no-process-exit | 禁止使用process.exit() | 案例 | |
no-process-env | 禁止使用process.env | 案例 | |
no-restricted-modules | 禁止通过require加载指定的模块,用了会报错 | 案例 | |
no-sync | nodejs 禁止同步方法 | 案例 |
这些规则主要是关于代码风格的,主观因素较强
参数 | 描述 | 备注 | 例子 |
---|---|---|---|
array-bracket-newline | 强制在数组的头尾括号之前执行换行 | F | 案例 |
array-bracket-spacing | 强制在数组括号内执行一致的间隔 | F | 案例 |
array-element-newline | 强制在每个数组元素之后执行换行符 | F | 案例 |
block-spacing | 强制在单行块内实施一致的间距 | F | 案例 |
brace-style | 强制块的括号风格统一 | 案例 | |
camelcase | 强制驼峰命名 | 案例 | |
capitalized-comments | 强制或禁止注释的第一个字母大写 | F | 案例 |
comma-dangle | 逗号风格,换行时在行首还是行尾 | F | 案例 |
comma-spacing | 强制逗号前后的空格 | F | 案例 |
comma-style | 块的括号风格统一 | 案例 | |
computed-property-spacing | 强制在计算属性括号内一致的间距 | F | 案例 |
consistent-this | 强制规定this别名 | 案例 | |
eol-last | 强制添加或禁止在文件末尾的换行 | F | 案例 |
func-call-spacing | 强制添加或禁止在函数标识符与其调用之间的间距 | F | 案例 |
func-name-matching | 要求函数名称与其分配到的变量或属性的名称相匹配 | 案例 | |
func-names | 强制添加或禁止命名函数表达式 | 案例 | |
func-style | 强制统一使用函数声明或表达式 | 案例 | |
id-blacklist | 禁止指定的标识符 | 案例 | |
id-length | 强制标识符长度最小和最大值 | 案例 | |
id-match | 要求标识符与指定的正则表达式匹配 | 案例 | |
indent | 强制统一的缩进 | F | 案例 |
jsx-quotes | 强制在JSX属性中一致地使用双引号或单引号 | F | 案例 |
key-spacing | 强制在对象文字属性中强制实现键和值之间的一致间距 | F | 案例 |
keyword-spacing | 强制在关键字前后执行一致的间距 | F | 案例 |
line-comment-position | 强制规定注释的位置 | 案例 | |
linebreak-style | 强制换行风格 | F | 案例 |
lines-around-comment | 强制注释前后空行 | F | 案例 |
max-depth | 强制嵌套的最大深度 | 案例 | |
max-len | 强制字符串最大长度 | 案例 | |
max-lines | 强制每个文件的最大行数 | 案例 | |
max-nested-callbacks | 强制最大深度,回调可以嵌套 | 案例 | |
max-params | 强制函数最大参数值 | 案例 | |
max-statements | 强制在功能块中允许的最大数量的语句 | 案例 | |
max-statements-per-line | 强制每行允许的最大数量的语句 | 案例 | |
multiline-ternary | 强制三元表达式换行 | 案例 | |
new-cap | 要求构造函数名称以大写字母开头 | 案例 | |
new-parens | new时,没有入参的话必须加小括号 | F | 案例 |
newline-per-chained-call | 链式调用后每次都需要换行符 | 案例 | |
no-array-constructor | 禁止使用数组构造器 | 案例 | |
no-bitwise | 禁止使用按位运算符 | 案例 | |
no-continue | 禁止使用continue | 案例 | |
no-inline-comments | 禁止代码后的内联注释 | 案例 | |
no-lonely-if | 禁止else语句内只有if语句 | F | 案例 |
no-mixed-operators | 禁止混合二进制运算符 | 案例 | |
no-mixed-spaces-and-tabs | 禁止混合空格和制表符缩进 | R | 案例 |
no-multi-assign | 禁止使用链式赋值表达式 | 案例 | |
no-multi-assign | 禁止使用链式赋值表达式 | 案例 | |
no-multiple-empty-lines | 禁止多行空格 | F | 案例 |
no-negated-condition | 禁止否定条件 | 案例 | |
no-nested-ternary | 禁止嵌套的三元表达式 | 案例 | |
no-new-object | 禁止使用new Object() | 案例 | |
no-plusplus | 禁止使用一元运算符++和-- | 案例 | |
no-restricted-syntax | 禁止指定语法 | 案例 | |
no-tabs | 禁止所有tabs | 案例 | |
no-ternary | 禁止使用三元表达式 | 案例 | |
no-trailing-spaces | 禁止在行尾有空格 | F | 案例 |
no-underscore-dangle | 禁止在标识符中用下划线 | 案例 | |
no-unneeded-ternary | 在简单判断中,禁止使用三元表达式 | F | 案例 |
no-whitespace-before-property | 禁止在属性前加空白 | F | 案例 |
nonblock-statement-body-position | 强制单行声明的位置 | F | 案例 |
object-curly-newline | 强制在大括号内执行一致的换行符 | F | 案例 |
object-curly-spacing | 强制在大括号内统一的空格 | F | 案例 |
object-property-newline | 强制将对象属性放在不同的行上 | F | 案例 |
one-var | 强制变量在函数中一起声明或多带带声明 | 案例 | |
one-var-declaration-per-line | 强制单行声明的位置 | F | 案例 |
operator-assignment | 在可能的情况下强制或禁止赋值运算符的简写 | F | 案例 |
operator-linebreak | 强制连接符统一的换行 | F | 案例 |
padded-blocks | 强制或禁止在块内填充空格 | F | 案例 |
padding-line-between-statements | 强制或禁止在语句之间填充空格 | F | 案例 |
quote-props | 强制对象字面量中的属性名双引号 | F | 案例 |
quotes | 强制统一使用反引号,双引号或单引号 | F | 案例 |
require-jsdoc | 需要JSDoc 注释 | 案例 | |
semi | 强制语句分号结尾 | F | 案例 |
semi-spacing | 强制分号前后空格 | F | 案例 |
semi-style | 强制分号位置 | F | 案例 |
sort-keys | 要求对象键进行排序 | 案例 | |
sort-vars | 要求同一声明块中的变量进行排序 | 案例 | |
space-before-blocks | 强制块区域内统一的间隔 | F | 案例 |
space-before-function-paren | 强制在Function括号之前执行统一的间距 | F | 案例 |
space-in-parens | 强制在括号内用统一的间距 | F | 案例 |
space-infix-ops | 中缀操作符周围需要有空格 | F | 案例 |
space-unary-ops | 强制在一元操作员之前或之后有统一的间距 | F | 案例 |
spaced-comment | 强制在注释中的//或/ *之后用统一的间距 | F | 案例 |
switch-colon-spacing | 在switch语句的冒号附近加间隔 | F | 案例 |
template-tag-spacing | 强制或禁止模板标签与其文字之间的间距 | F | 案例 |
unicode-bom | 强制或禁止Unicode字节顺序标记(BOM) | F | 案例 |
wrap-regex | 正则表达式字面量用小括号包起来 | F | 案例 |
这些规则涉及ES6(ES2015):
参数 | 描述 | 备注 | 例子 |
---|---|---|---|
arrow-body-style | 允许箭头函数 | F | 案例 |
arrow-parens | 箭头函数用小括号括起来 | F | 案例 |
arrow-spacing | 箭头的前/后括号空格 | F | 案例 |
constructor-super | 在构造函数中需要super()调用 | R | 案例 |
generator-star-spacing | 在生成器函数中的*操作符周围保持统一的间距 | F | 案例 |
no-class-assign | 禁止重新分配Class成员 | R | 案例 |
no-confusing-arrow | 在可能会与对比运算符混淆的地方禁止箭头功能 | F | 案例 |
no-const-assign | 禁止重新分配常量变量 | R | 案例 |
no-dupe-class-members | 禁止重复的class成员 | R | 案例 |
no-duplicate-imports | 禁止重复模块导入 | 案例 | |
no-new-symbol | 禁止在Symbol对象用new操作符 | R | 案例 |
no-restricted-imports | 通过import加载时禁止指定的模块 | 案例 | |
no-this-before-super | 在构造函数中调用super()之前禁止用this | R | 案例 |
no-useless-computed-key | 禁止对象文字中不必要的计算属性键 | F | 案例 |
no-useless-constructor | 禁止不必要的构造函数 | 案例 | |
no-useless-rename | 禁止不必要的重命名 | F | 案例 |
no-var | 用let,const代替var | F | 案例 |
object-shorthand | 强制或禁止对象文字的方法和属性简写语法 | F | 案例 |
prefer-arrow-callback | 需要箭头功能作为回调 | F | 案例 |
prefer-const | 永不改变的变量用const | F | 案例 |
prefer-destructuring | 需要从数组和/或对象中进行解构 | 案例 | |
prefer-numeric-literals | 禁止parseInt()支持二进制,八进制和十六进制文字 | F | 案例 |
prefer-rest-params | 需要reset参数 | 案例 | |
prefer-spread | 需要...操作符替代.apply() | F | 案例 |
prefer-template | 需要模板语法而不是字符串连接 | F | 案例 |
require-yield | 生成器函数必须有yield | R | 案例 |
rest-spread-spacing | 强制rest和展开运算符的间距 | F | 案例 |
sort-imports | 强制在模块中执行排序的导入声明 | F | 案例 |
symbol-description | 需要Symbol说明 | 案例 | |
template-curly-spacing | 强制或禁止模板字符串的嵌入式表达式周围有空格 | F | 案例 |
yield-star-spacing | 强制或禁止的yield *中的间距 | F | 案例 |
这些规则已经被新的规则替换,懒得写了
弃用列表
删除旧版本ESLint的这些规则已被更新的规则所取代,懒得写了
删除列表
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/87085.html
摘要:简介检查我们写的代码是否满足指定规则的静态代码检查工具。作用作为代码检查工具,其作用主要有以下几点统一代码风格规则,如缩进用几个空格是否用驼峰命名法来命名变量和函数名等。 1、简介: eslint检查我们写的 JavaScript 代码是否满足指定规则的静态代码检查工具。 ESHint 和 JSLint 也是静态代码检查工具,但伴随着发展,他们已经无法满足需求,于是ESlint 诞...
摘要:自动化接入和升级方案通过命令行工具提供一键接入升级能力,同时集成到团队脚手架中,大大降低了工程接入和维护的成本。原始代码经过解析器的解析,在管道中逐一经过所有规则的检查,最终检测出所有不符合规范的代码,并输出为报告。 引言 代码规范是软件开发领域经久不衰的话题,几乎所有工程师在开发过程中都会遇到,并或多或少会思考过这一问题。随着前端应用的大型化和复杂化,越来越多的前端工程师和团队开始重...
摘要:简介是由编写的一个可扩展每条规则独立不内置编码风格为理念的工具。在团队协作中,为避免低级产出风格统一的代码,会预先制定编码规范。使用工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量。 简介 ESLint 是由 Nicholas C. Zakas 编写的一个可扩展、每条规则独立、不内置编码风格为理念的 Lint 工具。 在团队协作中,为避免低级 Bug、产出风格统一的代码...
摘要:简介是一个被广泛应用的代码检查工具。格式更为灵活,项目用的是后缀,即。是指扩展官方支持的规则是和简写,对应模块。从这个配置中,我们可以看到没有使用默认的解析器,而是选择了。比如插件,就自定义了跟语法相关的规则。上面的是的简称。 Eslint简介 eslint是一个被广泛应用的javascript/jsx代码检查工具。 eslint配置文件可以使用js/yaml/json格式,或者在pa...
阅读 1506·2021-11-25 09:43
阅读 4057·2021-11-15 11:37
阅读 3192·2021-08-17 10:13
阅读 3503·2019-08-30 14:16
阅读 3533·2019-08-26 18:37
阅读 2487·2019-08-26 11:56
阅读 1128·2019-08-26 10:42
阅读 608·2019-08-26 10:39