eslint V4.1.1 划定规矩简介

eslint V4.1.1 划定规矩简介

花了一天整顿的,可以部份翻译的有毛病,背面会再校正一次

划定规矩申明:默许情况下不会启用任何划定规矩。配置文件中的"extends":"eslint:recommended"属性可以启用一些默许的考证划定规矩,默许的划定规矩在下表会用R示意出来

运用--fix敕令可以自动修复一些特定的划定规矩(大部份为空格类划定规矩),下面用F示意

划定规矩申明

0=off,1=warn, 2=error

可以性的毛病

这些划定规矩重要针对语法毛病和逻辑毛病

参数形貌备注例子
for-directionfor轮回 须要往准确的方向轮回,防止死轮回案例
no-await-in-loop制止轮回中有 await案例
no-compare-neg-zero制止和 -0 比较R案例
no-cond-assign制止在前提表达式运用赋值R案例
no-console制止运用consoleR案例
no-constant-condition制止在前提中运用常量表达式R案例
no-control-regex制止在正则中运用掌握字符R案例
no-debugger制止运用debuggerR F案例
no-dupe-args制止在函数定义中传入反复的参数R案例
no-dupe-keys制止在对象字面量中运用反复的keyR案例
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,breakR案例
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-caseswitch语句中须要有default值案例
dot-location强迫在点之前和以后实行一致的换行符F案例
dot-notation强迫运用.标记,防止[]F案例
eqeqeq运用 === 和 !==F案例
guard-for-infor in轮回要用if语句过滤案例
no-alert制止运用alert,confirm,prompt案例
no-caller制止运用arguments.caller或 arguments.callee案例
no-case-declarations制止在case子句中运用词法声明,肯定要用,封装在块中R案例
no-div-regex制止在正则表达式开首用除法案例
no-else-returnif语句内里有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制止非必要的labelF案例
no-fallthrough制止switch穿透R案例
no-floating-decimal制止省略浮点数中的0F案例
no-global-assign制止对当地对象或只读全局变量重定义R案例
no-implicit-coercion制止隐式转换F案例
no-implicit-globals制止在全局范围内声明变量和函数案例
no-implied-eval制止运用隐式eval案例
no-invalid-this制止无效的this,只能用在组织器,类,对象字面量案例
no-extra-label制止非必要的labelF案例
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-assignreturn 语句中不能有赋值表达式案例
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制止不必的labelR 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驳回缘由案例
radixparseInt必需指定第二个参数案例
require-await制止async中无await表达式案例
vars-on-topvar必需放在作用域顶部案例
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制止将变量初始化为undefinedF案例
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-syncnodejs 制止同步要领案例

代码作风

这些划定规矩重如果关于代码作风的,主观因素较强

参数形貌备注例子
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-parensnew时,没有入参的话必需加小括号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()之前制止用thisR案例
no-useless-computed-key制止对象笔墨中不必要的盘算属性键F案例
no-useless-constructor制止不必要的组织函数案例
no-useless-rename制止不必要的重定名F案例
no-var用let,const替代varF案例
object-shorthand强迫或制止对象笔墨的要领和属性简写语法F案例
prefer-arrow-callback须要箭头功用作为回调F案例
prefer-const永不转变的变量用constF案例
prefer-destructuring须要从数组和/或对象中举行解构案例
prefer-numeric-literals制止parseInt()支撑二进制,八进制和十六进制笔墨F案例
prefer-rest-params须要reset参数案例
prefer-spread须要…操作符替代.apply()F案例
prefer-template须要模板语法而不是字符串衔接F案例
require-yield生成器函数必需有yieldR案例
rest-spread-spacing强迫rest和睁开运算符的间距F案例
sort-imports强迫在模块中实行排序的导入声明F案例
symbol-description须要Symbol申明案例
template-curly-spacing强迫或制止模板字符串的嵌入式表达式四周有空格F案例
yield-star-spacing强迫或制止的yield *中的间距F案例

弃用

这些划定规矩已被新的划定规矩替代,懒得写了

弃用列表

删除

旧版本ESLint的这些划定规矩已被更新的划定规矩所庖代,懒得写了

删除列表

    原文作者:willhu
    原文地址: https://segmentfault.com/a/1190000010139400
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞