鸿蒙高质量代码静态检测 200 条一
@typescript-eslint/adjacent-overload-signatures
建议函数重载的签名保持连续
@typescript-eslint/await-thenable
不允许对不是“Thenable”对象的值使用 await 关键字,相反对“Thenable”对象必须使用 await,例如对 Promise 对象。
@typescript-eslint/array-type
定义数组时,使用统一的样式,如都使用 T[]或都使用 Array。
default 的值设置为 array 时,统一使用 T[];设置 generic 时,统一使用 Array,设置为 array-simple 时,简单类型使用 T[],其它类型使用 Array
@typescript-eslint/ban-ts-comment
不允许使用
@ts-<directional>
格式的注释,或要求在注释后进行补充说明
@typescript-eslint/ban-tslint-comment
不允许使用
//tslint:<rule-flag>
格式的注释
@typescript-eslint/ban-types
不允许使用某些类型,例如类型小写保持一致,使用 string,boolean,number 等等,而不是 String,Boolean,Number。
@typescript-eslint/brace-style
要求代码块的左大括号与其对应的语句或声明位于同一行。
@typescript-eslint/class-literal-property-style
建议类中的字面量属性对外暴露时,保持一致的风格
@typescript-eslint/comma-dangle
允许或禁止使用尾随逗号,类的最后一个属性或者数组最后一个元素禁止尾随逗号
共有数组 arrays,对象 objects,导入 imports,导出 exports 和函数 functions 五各类型支持配置,值设置为 never 则是禁止尾随逗号,设置为 always 则是允许尾随逗号。
@typescript-eslint/comma-spacing
强制逗号前后的空格风格保持一致,例如强制要求逗号前不加空格,逗号后必须添加空格
@typescript-eslint/consistent-type-assertions
强制使用一致的类型断言
@typescript-eslint/default-param-last
强制默认参数位于参数列表的最后一个
@typescript-eslint/explicit-member-accessibility
在类属性和方法上需要显式定义访问修饰符
@typescript-eslint/func-call-spacing
禁止或者要求函数名与函数名后面的括号之间加空格
设置为 never 时,函数名后面禁止添加空格,设置为 always 时,函数名后面允许添加空格
@typescript-eslint/init-declarations
禁止或者要求在变量声明中进行初始化
设置为 always 时,声明变量必须初始化,设置为 never 时,声明变量可以不初始化。
@typescript-eslint/keyword-spacing
强制在关键字之前和关键字之后保持一致的空格风格,例如在关键字前后都添加空格
@typescript-eslint/lines-between-class-members
禁止或者要求类成员之间有空行分隔,always 为允许有空行,never 为不允许有空行,如下设置空行后不加空行,属性和方法之前添加空行。
@typescript-eslint/member-delimiter-style
要求接口和类型别名中的成员之间使用特定的分隔符,支持定义的分隔符有三种:分号、逗号、无分隔符
@typescript-eslint/member-ordering
要求类、接口和类型字面量中成员的排序方式保持一致的风格
@typescript-eslint/naming-convention
强制标识符使用一致的命名风格。例如类名使用大驼峰,函数使用小驼峰。
@typescript-eslint/no-array-constructor
不允许使用“Array”构造函数。
@typescript-eslint/no-base-to-string
要求当一个对象在字符串化时提供了有用的信息,才能调用“toString()”方法
@typescript-eslint/no-confusing-non-null-assertion
不允许在可能产生混淆的位置使用非空断言
@typescript-eslint/no-confusing-void-expression
要求 void 类型的表达式出现在合适的位置
@typescript-eslint/no-dupe-class-members
不允许重复的类成员,即已经声明的成员属性,不允许重复再声明一次。
@typescript-eslint/no-duplicate-imports
禁止重复的模块导入,即已经导入的模块,不允许再再次导入。
@typescript-eslint/no-empty-function
不允许使用空函数,支持的白名单配置包括函数,箭头函数,方法,构造方法等等,配置如下
@typescript-eslint/no-empty-interface
不允许声明空接口
@typescript-eslint/no-extraneous-class
不允许将类用作命名空间
@typescript-eslint/no-extra-non-null-assertion
不允许多余的非空断言
@typescript-eslint/no-extra-parens
禁止使用不必要的括号
@typescript-eslint/no-extra-semi
禁止使用不必要的分号
@typescript-eslint/no-floating-promises
要求正确处理 Promise 表达式,例如 Promise 一定要处理异常情况
@typescript-eslint/no-implied-eval
禁止使用类似“eval()”的方法
@typescript-eslint/no-inferrable-types
不允许对初始化为数字、字符串或布尔值的变量或参数进行显式类型声明
@typescript-eslint/no-invalid-this
禁止在 this 的值为 undefined 的上下文中使用 this
@typescript-eslint/no-invalid-void-type
禁止在返回类型或者泛型类型之外使用 void
@typescript-eslint/no-loss-of-precision
禁止使用失去精度的字面数字
@typescript-eslint/no-magic-numbers
禁止使用魔法数字。但有些情况下我们又需要直接使用数字,例如定义枚举时,在数组中根据索引取数据时,或者直接定义某些值不是魔法数字,示例如下
@typescript-eslint/no-misused-new
要求正确地定义“new”和“constructor”
@typescript-eslint/no-misused-promises
禁止在不正确的位置使用 Promise
@typescript-eslint/no-non-null-asserted-optional-chain
禁止在可选链表达式之后使用非空断言
@typescript-eslint/no-non-null-assertion
禁止以感叹号作为后缀的方式使用非空断言
@typescript-eslint/no-redeclare
禁止变量重复声明,即前面声明过的变量,不允许再次声明。
@typescript-eslint/no-require-imports
禁止使用“require()”语法导入依赖
@typescript-eslint/no-restricted-syntax
不允许使用指定的(即用户在规则中定义的)语法。例如不允许直接使用 console.log 打印日志,而是使用我们封装好的 LogUtil 打印日志
@typescript-eslint/no-shadow
禁止声明与外部作用域变量同名的变量
@typescript-eslint/no-throw-literal
禁止将字面量作为异常抛出
@typescript-eslint/no-unnecessary-boolean-literal-compare"
禁止将布尔值和布尔字面量直接进行比较
@typescript-eslint/no-unnecessary-condition
不允许使用类型始终为真或始终为假的表达式作为判断条件
@typescript-eslint/no-unnecessary-qualifier
禁止不必要的命名空间限定符
版权声明: 本文为 InfoQ 作者【龙儿筝】的原创文章。
原文链接:【http://xie.infoq.cn/article/2646036442ba00734227a1834】。文章转载请联系作者。
评论