【发布时间】:2022-01-29 23:30:51
【问题描述】:
我希望能够为父类中的抽象方法编写 JsDoc,以便它适用于其所有继承者。
这个例子是我案例的一个非常精简的版本:
class Shape {
/** Does some complicated example stuff.
* @param {number} myNumber a real value.
* @param {boolean} myBoolean a flag.
* @param {string} myString some text.
* @returns {string} something important.
*/
doStuff(myNumber, myBoolean, myString) {}
}
doStuff 方法没有实现,因为(许多)子类中的每一个都以不同的方式实现它,但具有相同的签名和相同的参数。
class Triangle extends Shape {
doStuff(myNumber, myBoolean, myString) {
return myBoolean ? myNumber.toString() : myString;
}
}
从截图可以看出,文档的文本部分是继承的,但是参数类型和返回类型丢失了。我还能做些什么来正确继承类型?我尝试使用@inheritdoc、@abstract、@extends、@override 和@link 标签,但没有成功。
请考虑这是一个极其简化的版本,在我的实际代码中,文档块超过 20 行,将其复制到数量不断增加的子类中是不可行的,因为维护将是一场噩梦。
【问题讨论】:
标签: javascript inheritance jsdoc