TypeScript 规范
该规则基于typescript-eslint进行调整
TIP
详细规则见typescript-eslint#rules,以下为调整的一些规则
规则调整
以下为调整到warn级别 的一些规则
当设定当前值为当前类型时,推荐使用 as const 替代 as 'bar'。
eslint:
prefer-as-const禁止出现空的 interface。
eslint:
no-empty-interface禁止使用容易混淆的非空断言。
eslint:
no-confusing-non-null-assertion优先使用 interface 而不是 type 定义对象类型。
eslint:
consistent-type-definitions声明的变量必须被使用。
eslint:
no-unused-vars@ts-expect-error/@ts-ignore/@ts-nocheck/@ts-check 等指令时需跟随注释描述。
eslint:
ban-ts-comment
以下为关闭OFF的一些规则
函数返回值必须与声明的类型一致。
eslint:
explicit-function-return-type模版字符串中的变量类型必须是字符串。
eslint:
restrict-template-expressions添加两个变量时,操作数必须都是数字类型或字符串类型。
eslint:
restrict-plus-operands条件判断必须传入布尔值。
eslint:
strict-boolean-expressions禁止使用 non-null 断言(感叹号)。
eslint:
no-non-null-assertionasync 函数的返回值必须是 Promise。
eslint:
promise-function-async使用 ?? 替代 || Promise。
eslint:
prefer-nullish-coalescing限制 toString 方法的使用。
eslint:
no-base-to-string禁止使用 require 来引入模块。
eslint:
no-var-requires使用 optional chaining 替代 &&。
eslint:
prefer-optional-chain禁止给一个初始化时直接赋值为 number, string 的变量显式的声明类型。
eslint:
no-inferrable-types导出的函数或类中的 public 方法必须定义输入输出参数的类型。
eslint:
explicit-module-boundary-types禁止出现空函数,普通函数(非 async/await/generator)、箭头函数、类上的方法除外。
eslint:
no-empty-function禁止在定义变量之前就使用它。
eslint:
no-use-before-define不建议将 this 赋值给其他变量,解构赋值除外。
eslint:
no-this-alias函数名与调用它的括号间无空格。
eslint:
func-call-spacing变量必须在定义的时候赋值。
eslint:
init-declarationsinterface 中的方法用属性的方式定义。
eslint:
method-signature-style限制各种变量或类型的命名规则。
eslint:
camelcase禁止在 class 外使用 this。
eslint:
no-invalid-this禁止使用 magic numbers。
eslint:
no-magic-numbersasync 函数中必须存在 await 语句。
eslint:
require-await