-
Ⅲ、ESLint - 工作中用到的规则
-
注意提醒:每个规则对应的0,1,2分别表示off, warning, error三个错误级别
- no-unused-vars(定义了变量却没有在代码中使用)这是防止产生多余没用的变量
- semi(缺少分号,行尾必须使用分号)这是为了在压缩代码的时候出现意外情况
- no-console(禁止使用 console)
- consistent-this(this的别名规则,只允许self和that)防止有些人写成_this或者me等等
- curly(if 后必须包含 { ,单行 if 除外)也是为了方便阅读代码
- default-case(switch 语句必须包含 default)
- eqeqeq(必须使用全等===进行比较)防止隐式转换带来的意外问题
- guard-for-in(for in时需检测hasOwnProperty)避免遍历到继承来的属性方法
- max-depth(最大块嵌套不能超过5层)
- max-params(函数的形参不能多于8个,如果形参过多,我们现在可以用扩展运算符...来代替后面多余的形参)
- new-cap(new关键字后类名应首字母大写,区分类和函数)
- no-array-constructor(禁止使用Array构造函数,定义数组直接用最快捷的方式[1, 2, 3])
- no-await-in-loop(禁止将await写在循环里,循环属于同步操作,不该将await异步操作写在内部)
- no-caller(禁止使用arguments.caller和arguments.callee,ES6中废弃了)
- no-const-assign(禁止对const定义重新赋值)
- no-delete-var(禁止对变量使用delete关键字,delete只适用于对象的属性,提醒使用的范围)
- no-dupe-args(函数参数禁止重名)
- no-empty-function(禁止空的function,保证写的每一个function都有用)
- no-eval(禁止使用eval,eval是“魔鬼”,所以在开发中避免)
- no-extra-semi(禁止额外的分号,有些地方没必要加分号比如if () {};这样就是错误的)
- no-global-assign(禁止对全局变量赋值)
-
常见规则\
- accessor-pairs(设置了 setter ,必须相应设置 getter ,反之不必须)
- array-bracket-newline(数组方括号前后的换行符使用规则)
- array-bracket-spacing(数组方括号前后的空格使用规则)
- array-callback-return(数组的 map、filter、sort 等方法,回调函数必须有返回值)
- array-element-newline(每个数组项是否独占一行)
- arrow-body-style(箭头函数的书写规则)
- arrow-parens(箭头函数的圆括号使用规则)
- arrow-spacing(箭头函数的空格使用规则)
- block-scoped-var(不能在块外使用块作用域内 var 定义的变量)
- block-spacing(代码块花括号前后的空格规则)
- brace-style(if else 的花括号换行规则)
- callback-return(callback 之后必须立即 return)
- camelcase(变量名必须使用驼峰式)
- capitalized-comments(注释的首字母应该大写)
- class-methods-use-this(class 的非静态方法必须包含 this 关键字)
- comma-dangle(对象的最后一项后面是否写逗号)
- comma-spacing(逗号前后是否有空格)
- comma-style(逗号写在行首还是行尾)
- complexity(禁止函数 if ... else if ... else 的复杂度超过 20)
- computed-property-spacing(使用方括号访问对象属性时,方括号前后的空格规则)
- consistent-return(禁止函数在不同条件下返回不同类型的值)
- consistent-this(this 的别名规则,只允许 self 或 that)
- constructor-super(构造函数中必须调用 super)
- curly(if 后必须包含 { ,单行 if 除外)
- ......
-