写点什么

鸿蒙高质量代码静态检测 200 条一

作者:龙儿筝
  • 2024-11-12
    上海
  • 本文字数:3256 字

    阅读完需:约 11 分钟

  1. @typescript-eslint/adjacent-overload-signatures


  • 建议函数重载的签名保持连续


  1. @typescript-eslint/await-thenable


  • 不允许对不是“Thenable”对象的值使用 await 关键字,相反对“Thenable”对象必须使用 await,例如对 Promise 对象。


  1. @typescript-eslint/array-type


  • 定义数组时,使用统一的样式,如都使用 T[]或都使用 Array。


"@typescript-eslint/array-type": [  "error",  {    //      array | array-simple | generic    "default": "array"  }]
复制代码


  • default 的值设置为 array 时,统一使用 T[];设置 generic 时,统一使用 Array,设置为 array-simple 时,简单类型使用 T[],其它类型使用 Array


  1. @typescript-eslint/ban-ts-comment


  • 不允许使用@ts-<directional>格式的注释,或要求在注释后进行补充说明


  1. @typescript-eslint/ban-tslint-comment


  • 不允许使用//tslint:<rule-flag>格式的注释


  1. @typescript-eslint/ban-types


  • 不允许使用某些类型,例如类型小写保持一致,使用 string,boolean,number 等等,而不是 String,Boolean,Number。


  1. @typescript-eslint/brace-style


  • 要求代码块的左大括号与其对应的语句或声明位于同一行。


  1. @typescript-eslint/class-literal-property-style


  • 建议类中的字面量属性对外暴露时,保持一致的风格


  1. @typescript-eslint/comma-dangle


  • 允许或禁止使用尾随逗号,类的最后一个属性或者数组最后一个元素禁止尾随逗号


"@typescript-eslint/comma-dangle": [  "error",  {    //      never | always    "arrays": "never",    "objects": "never",    "imports": "never",    "exports": "never",    "functions": "never"  }]
复制代码


  • 共有数组 arrays,对象 objects,导入 imports,导出 exports 和函数 functions 五各类型支持配置,值设置为 never 则是禁止尾随逗号,设置为 always 则是允许尾随逗号。


  1. @typescript-eslint/comma-spacing


  • 强制逗号前后的空格风格保持一致,例如强制要求逗号前不加空格,逗号后必须添加空格


"@typescript-eslint/comma-spacing": [  "error",  {    "before": false,    "after": true  }]
复制代码


  1. @typescript-eslint/consistent-type-assertions


  • 强制使用一致的类型断言


  1. @typescript-eslint/default-param-last


  • 强制默认参数位于参数列表的最后一个


  1. @typescript-eslint/explicit-member-accessibility


  • 在类属性和方法上需要显式定义访问修饰符


  1. @typescript-eslint/func-call-spacing


  • 禁止或者要求函数名与函数名后面的括号之间加空格


"@typescript-eslint/func-call-spacing": [  "error",  "never"]
复制代码


  • 设置为 never 时,函数名后面禁止添加空格,设置为 always 时,函数名后面允许添加空格


  1. @typescript-eslint/init-declarations


  • 禁止或者要求在变量声明中进行初始化


"@typescript-eslint/init-declarations": [  "error",  "always"]
复制代码


  • 设置为 always 时,声明变量必须初始化,设置为 never 时,声明变量可以不初始化。


  1. @typescript-eslint/keyword-spacing


  • 强制在关键字之前和关键字之后保持一致的空格风格,例如在关键字前后都添加空格


"@typescript-eslint/keyword-spacing": [  "error",  {    "before": true,    "after": true  }]
复制代码


  1. @typescript-eslint/lines-between-class-members


  • 禁止或者要求类成员之间有空行分隔,always 为允许有空行,never 为不允许有空行,如下设置空行后不加空行,属性和方法之前添加空行。


"@typescript-eslint/lines-between-class-members": [  "error",  {    enforce: [      {        blankLine: "never",        prev: "field",        next: "method"      }    ]  }]
复制代码


  1. @typescript-eslint/member-delimiter-style


  • 要求接口和类型别名中的成员之间使用特定的分隔符,支持定义的分隔符有三种:分号、逗号、无分隔符


  1. @typescript-eslint/member-ordering


  • 要求类、接口和类型字面量中成员的排序方式保持一致的风格


  1. @typescript-eslint/naming-convention


  • 强制标识符使用一致的命名风格。例如类名使用大驼峰,函数使用小驼峰。


  1. @typescript-eslint/no-array-constructor


  • 不允许使用“Array”构造函数。


  1. @typescript-eslint/no-base-to-string


  • 要求当一个对象在字符串化时提供了有用的信息,才能调用“toString()”方法


  1. @typescript-eslint/no-confusing-non-null-assertion


  • 不允许在可能产生混淆的位置使用非空断言


  1. @typescript-eslint/no-confusing-void-expression


  • 要求 void 类型的表达式出现在合适的位置


  1. @typescript-eslint/no-dupe-class-members


  • 不允许重复的类成员,即已经声明的成员属性,不允许重复再声明一次。


  1. @typescript-eslint/no-duplicate-imports


  • 禁止重复的模块导入,即已经导入的模块,不允许再再次导入。


  1. @typescript-eslint/no-empty-function


  • 不允许使用空函数,支持的白名单配置包括函数,箭头函数,方法,构造方法等等,配置如下


"@typescript-eslint/no-empty-function": [  "error",  {    "allow": [      "functions",      "arrowFunctions",      "generatorFunctions",      "methods",      "generatorMethods",      "getters",      "setters",      "constructors",      "asyncFunctions",      "asyncMethods"    ]  }]
复制代码


  1. @typescript-eslint/no-empty-interface


  • 不允许声明空接口


  1. @typescript-eslint/no-extraneous-class


  • 不允许将类用作命名空间


  1. @typescript-eslint/no-extra-non-null-assertion


  • 不允许多余的非空断言


  1. @typescript-eslint/no-extra-parens


  • 禁止使用不必要的括号


  1. @typescript-eslint/no-extra-semi


  • 禁止使用不必要的分号


  1. @typescript-eslint/no-floating-promises


  • 要求正确处理 Promise 表达式,例如 Promise 一定要处理异常情况


  1. @typescript-eslint/no-implied-eval


  • 禁止使用类似“eval()”的方法


  1. @typescript-eslint/no-inferrable-types


  • 不允许对初始化为数字、字符串或布尔值的变量或参数进行显式类型声明


  1. @typescript-eslint/no-invalid-this


  • 禁止在 this 的值为 undefined 的上下文中使用 this


  1. @typescript-eslint/no-invalid-void-type


  • 禁止在返回类型或者泛型类型之外使用 void


  1. @typescript-eslint/no-loss-of-precision


  • 禁止使用失去精度的字面数字


  1. @typescript-eslint/no-magic-numbers


  • 禁止使用魔法数字。但有些情况下我们又需要直接使用数字,例如定义枚举时,在数组中根据索引取数据时,或者直接定义某些值不是魔法数字,示例如下


"@typescript-eslint/no-magic-numbers": [  "off",  {    "ignoreEnums": true,    "ignoreArrayIndexes": true,    "ignoreNumericLiteralTypes": true,    "ignore": [      -1,      0,      1    ]  }]
复制代码


  1. @typescript-eslint/no-misused-new


  • 要求正确地定义“new”和“constructor”


  1. @typescript-eslint/no-misused-promises


  • 禁止在不正确的位置使用 Promise


  1. @typescript-eslint/no-non-null-asserted-optional-chain


  • 禁止在可选链表达式之后使用非空断言


  1. @typescript-eslint/no-non-null-assertion


  • 禁止以感叹号作为后缀的方式使用非空断言


  1. @typescript-eslint/no-redeclare


  • 禁止变量重复声明,即前面声明过的变量,不允许再次声明。


  1. @typescript-eslint/no-require-imports


  • 禁止使用“require()”语法导入依赖


  1. @typescript-eslint/no-restricted-syntax


  • 不允许使用指定的(即用户在规则中定义的)语法。例如不允许直接使用 console.log 打印日志,而是使用我们封装好的 LogUtil 打印日志


"@typescript-eslint/no-restricted-syntax": [  "error",  {    "selector": "CallExpression[callee.name='console.log']",    "message": "不要直接使用console打印日志,请使用LogUtil"  }]
复制代码


  1. @typescript-eslint/no-shadow


  • 禁止声明与外部作用域变量同名的变量


  1. @typescript-eslint/no-throw-literal


  • 禁止将字面量作为异常抛出


  1. @typescript-eslint/no-unnecessary-boolean-literal-compare"


  • 禁止将布尔值和布尔字面量直接进行比较


  1. @typescript-eslint/no-unnecessary-condition


  • 不允许使用类型始终为真或始终为假的表达式作为判断条件


  1. @typescript-eslint/no-unnecessary-qualifier


  • 禁止不必要的命名空间限定符


发布于: 刚刚阅读数: 6
用户头像

龙儿筝

关注

还未添加个人签名 2024-10-27 加入

还未添加个人简介

评论

发布
暂无评论
鸿蒙高质量代码静态检测200条一_龙儿筝_InfoQ写作社区