首页 > 其他分享 >鸿蒙高质量代码静态检测200条一

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

时间:2024-11-12 12:29:46浏览次数:1  
标签:200 typescript 鸿蒙 no 条一 禁止 eslint 使用 允许

  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
  • 禁止不必要的命名空间限定符

标签:200,typescript,鸿蒙,no,条一,禁止,eslint,使用,允许
From: https://www.cnblogs.com/zhaloe/p/18541582

相关文章

  • 鸿蒙开发之用户输入(TextInput)
    前言:日常开发中如果需要接收用户输入,就可以使用输入组件来完成TextInput:单行输入框:常用参数:参数名类型是否必填说明placeholderResourceStr否设置无输入时的提示文本。textResourceStr否设置输入框当前的文本内容。从APIversion10开始,该参数......
  • 《【NOIP2000 基础】计算器的改良》 不全对题解
    温馨提示,本题难度略大,本人写不出来正确代码,文章代码并不对,只是提供一些思路,希望大家能谅解!目录题目描述输入描述输出描述解析完整代码描述NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一......
  • 鸿蒙NEXT开发案例:指尖轮盘
     【1】引言“指尖轮盘”是一个简单而有趣的互动游戏(类似抓阄),这个应用通过触摸屏幕的方式,让玩家参与一个激动人心的游戏,最终选出幸运的赢家。未来可以进一步扩展功能,如增加游戏模式、优化动画效果、增加音效等,提升用户体验。【2】环境准备电脑系统:windows10开发工具:DevEco......
  • 题解:P10967 [IOI2000] 邮局(原始版)
    思路首先将坐标排序。定义\(dp_{i,j}\)为前\(i\)个村庄放\(j\)个邮局的前\(i\)个村庄的最小距离总和,\(f(i,j)\)表示村庄区间\([i,j]\)内放一个村庄时该区间的总和。转化式易得\(dp_{i}{j}=dp_{k}{j-1}+f(k+1,i),k\in[0,i)\)。则本题的难点就为求\(f(k-1,i)\)。......
  • 鸿蒙ArkTS和TS有什么区别?
    Ark是强类型,打包编译的时候会保留类型。提高程序运行效率。TS支持类型校验,但是并不严格,支持any、unknown这些不明确的类型。编译后其实js+d.ts,js文件不保留类型。ArkTS基本禁用了动态类型比如对象不能随意添加或者删除某些属性,对象类型要明确,需提前用interface或class把......
  • 鸿蒙开发,arkts 如何读取普通文件
    ArkTS提供了渲染控制的能力,包括条件渲染、循环渲染和数据懒加载等。这些渲染控制语句可以辅助UI的构建,提高应用的性能和用户体验。今天给大家分享arkts如何读取普通文件知识,如果有所帮助,大家点点关注支持一下,也可以联系上我一起学习。在ArkTS中读取普通文件可以通过以下......
  • PEF22554HTV3.1 英特尔intel 电信 IC 调帧器,线路接口单元(LIU) P-TQFP-144 在售20000PCS
    PEF22554HTV3.1是一款由英特尔(Intel)生产的电信IC调帧器,它可以与线路接口单元(LIU)一起使用。该调帧器的封装类型是P-TQFP-144。该调帧器适用于电信领域的应用,可以用于实现数据调制和解调功能,常见于传输和接收语音、数据和视频信号的通信设备中。型号:PEF22554HTV3.1类别:集成电路......
  • Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行信号时域仿真操作指导(
    SigritySPEED2000PowerGroundNoiseSimulation模式如何进行信号时域仿真操作指导(一)-单个IBIS模型SigritySPEED2000PowerGroundNoiseSimulation模式如何进行信号时域仿真操作指导(一)-单个信号是用晶体管模型来作为驱动,下面以单个IBIS模型作为驱动来说明如何进行时......
  • Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行信号时域仿真操作指导(
    SigritySPEED2000PowerGroundNoiseSimulation模式如何进行信号时域仿真操作指导(二)-三个信号SigritySPEED2000PowerGroundNoiseSimulation模式如何进行信号时域仿真操作指导(一)-单个信号详细介绍了单个信号的网络时域电压仿真,并且查看电压时域曲线,如果将信号扩展......
  • 鸿蒙生态的全景透视
    鸿蒙生态的全景透视在这个智能设备日益普及的时代,你是否也在思考:不同设备之间如何才能实现无缝连接?鸿蒙生态,作为华为推出的全新操作系统,或许会给你答案。它不仅仅是一个操作系统,更是一个充满机遇和挑战的生态环境。本文将走进鸿蒙生态的世界,探索它的概念、运作方式、潜在的......