前端进阶6-ESLint + Prettier - Ⅲ、ESLint - 工作中用到的规则

165 阅读3分钟
  • Ⅲ、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 除外)
        • ......