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的这些划定规矩已被更新的划定规矩所庖代,懒得写了