是否存在强制类成员添加类型注解的@typescript-eslint等效规则?
强制TypeScript类成员添加类型注解的ESLint规则
你需要的是@typescript-eslint/typedef规则下的memberDeclaration配置项,开启它就能实现类成员(属性、方法参数/返回值等)必须加显式类型注解的强制要求,和你已经在用的variableDeclaration是同规则下的不同子选项。
配置示例
在你的ESLint配置文件(如.eslintrc.js)中,修改规则如下:
module.exports = { rules: { '@typescript-eslint/typedef': [ 'error', { variableDeclaration: true, // 你已启用的变量声明检查 memberDeclaration: true, // 新增:强制类成员加类型注解 // 按需可选其他子规则: // propertyDeclaration: true, // 仅针对类属性单独强制 // parameter: true, // 强制函数/方法参数加类型注解 }, ], }, };
生效范围
开启memberDeclaration后,以下场景会触发ESLint错误:
- 类的实例属性缺失类型注解:比如
class Demo { title; }(未标注title: string) - 类的静态属性缺失类型注解:比如
class Demo { static total; } - 类方法的参数、返回值缺失类型注解(若未单独关闭相关子规则)
精准控制
如果只需要强制类属性加类型注解,不想约束方法的参数和返回值,可以单独开启propertyDeclaration选项,替换掉memberDeclaration,这样检查范围更精准。
内容的提问来源于stack exchange,提问作者Delectable Tea
相关产品推荐
相关产品推荐

