资讯专栏INFORMATION COLUMN

eslint V4.1.1 规则简介

tuomao / 3283人阅读

摘要:规则简介花了一天整理的,可能部分翻译的有错误,后面会再校对一次规则说明默认情况下不会启用任何规则。

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 and CommonJS

这些规则与在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 案例
ECMAScript 6

这些规则涉及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

    摘要:简介检查我们写的代码是否满足指定规则的静态代码检查工具。作用作为代码检查工具,其作用主要有以下几点统一代码风格规则,如缩进用几个空格是否用驼峰命名法来命名变量和函数名等。 1、简介: eslint检查我们写的 JavaScript 代码是否满足指定规则的静态代码检查工具。 ESHint 和 JSLint 也是静态代码检查工具,但伴随着发展,他们已经无法满足需求,于是ESlint 诞...

    wendux 评论0 收藏0
  • ESLint 在中大型团队的应用实践

    摘要:自动化接入和升级方案通过命令行工具提供一键接入升级能力,同时集成到团队脚手架中,大大降低了工程接入和维护的成本。原始代码经过解析器的解析,在管道中逐一经过所有规则的检查,最终检测出所有不符合规范的代码,并输出为报告。 引言 代码规范是软件开发领域经久不衰的话题,几乎所有工程师在开发过程中都会遇到,并或多或少会思考过这一问题。随着前端应用的大型化和复杂化,越来越多的前端工程师和团队开始重...

    alogy 评论0 收藏0
  • ESLint简单操作

    摘要:简介是由编写的一个可扩展每条规则独立不内置编码风格为理念的工具。在团队协作中,为避免低级产出风格统一的代码,会预先制定编码规范。使用工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量。 简介 ESLint 是由 Nicholas C. Zakas 编写的一个可扩展、每条规则独立、不内置编码风格为理念的 Lint 工具。 在团队协作中,为避免低级 Bug、产出风格统一的代码...

    liukai90 评论0 收藏0
  • react源码解析003 - 关于eslint

    摘要:简介是一个被广泛应用的代码检查工具。格式更为灵活,项目用的是后缀,即。是指扩展官方支持的规则是和简写,对应模块。从这个配置中,我们可以看到没有使用默认的解析器,而是选择了。比如插件,就自定义了跟语法相关的规则。上面的是的简称。 Eslint简介 eslint是一个被广泛应用的javascript/jsx代码检查工具。 eslint配置文件可以使用js/yaml/json格式,或者在pa...

    AlphaGooo 评论0 收藏0
  • 前端必备资源大整理

    摘要:资源不断更新中。。。主页前端工具简介虽然不是第一个任务执行工具,它却很快成为了最受欢迎的。官方网站网易框架是网易推出的开源前端框架,提供了丰富代码库和插件,可以极大的帮助开发人员提高开发效率。 资源不断更新中。。。 动画库1.Animate.css说明:一个简单易用的跨浏览器CSS动画库。GitHub主页: https://github.com/daneden/an... 2.CSSh...

    JiaXinYi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<