如何使用JSDoc为TypeScript接口方法添加类型描述?
为TypeScript接口方法添加类型描述的正确方式
针对你遇到的问题,以下是两种适配不同接口写法的正确JSDoc注释方案:
方案1:适配属性式方法定义(你的代码写法)
对于你代码中init: () => void这种属性式的方法定义,需要使用@type注解关联类型并补充描述:
/** * @interface Foo的接口定义 */ interface IFoo { /** * 初始化实例的方法 * @type {() => void} */ init: () => void; } class Foo implements IFoo { /** * 执行初始化逻辑 */ public init(): void {} }
这种写法能让文档工具正确识别方法的类型与描述。
方案2:改用方法式接口定义(更符合TS习惯)
如果将接口改为标准的方法式定义,TypeScript本身的类型声明会被文档工具自动识别,只需补充描述即可:
/** * @interface Foo的接口定义 */ interface IFoo { /** * 初始化实例的方法 */ init(): void; } class Foo implements IFoo { /** * 执行初始化逻辑 */ public init(): void {} }
这种写法下,TS的类型信息会直接被JSDoc工具读取,无需在注释中重复声明类型。
为什么@method不适用?
@method注解通常用于在JSDoc中定义对象字面量或类的方法,而非TypeScript接口的属性式方法声明。对于TS接口的类型成员,应该用@type关联类型,或者直接依赖TS本身的类型定义传递类型信息。
内容的提问来源于stack exchange,提问作者Slava.In
相关产品推荐
相关产品推荐

