如JSDoc文档中的@type
标签所述;
通过使用下面描述的一种格式提供类型表达式来指定每种类型。适当时,JSDoc 将自动创建指向其他符号文档的链接。例如,
@type {MyClass}
将链接到MyClass文档,如果该符号已被记录。
一个例子:
A.js:
/**
* Class A.
*/
class A {
/**
* Create a new instance of class A.
*/
constructor(name) {
/** @member {string} */
this.name = name;
}
}
module.exports = A;
B.js:
const A = require('./A.js');
/**
* My function B.
* @returns {A} A person.
*/
function myFuncB(n) {
/** @type {A} */
let i = new A(n);
return i;
}
在JSDoc生成的文档中,此函数的返回类型(myFuncB(n) -> {A}
)将显示为,并将链接到Class A (链接默认情况下以蓝色突出显示,而JSDoc默认)模板)。
但是,如果将类A显式设置为模块的成员,则不是这种情况:
A.js:
/**
* Class A.
* @memberof module:myModels/myModuleName
*/
class A {
/**
* Create a new instance of class A.
*/
constructor(name) {
/** @member {string} */
this.name = name;
}
}
module.exports = A;
(假设模块存在)
现在,在 B.js 中, A 的显示类型为any
,此外,该函数不再链接到类A:{ {1}},但没有链接。 (“ A”不包含指向其班级文档的链接,并且未突出显示为蓝色)
我必须指定类的模块吗?为什么到A类的链接消失了?