JSDoc是如何将@typedef标记为@global的?

时间:2017-09-26 22:51:40

标签: javascript jsdoc jsdoc3

确保我们的Node服务器中的模块中的这个是在整个应用程序中使用@typedef的正确方法,而不是在需要的每个模块/文件中重复它。从文档中我无法确定这是否正确,并且是否有人对存储全局@typedefs的位置有意见,因此如果在整个应用程序中使用它们需要更改,则很容易找到它们。

/**
 * Universally unique identifier.
 * @global
 * @typedef {string} UUID
 */

1 个答案:

答案 0 :(得分:2)

这里的答案有点晚,但是我遇到了Google的这个问题,所以这就是我自己解决这个问题的方式。希望它对未来的人们有所帮助!

我遇到了类似的情况,我在模块中有一个typedef,想在应用程序的其他地方使用该类型,而无需重新定义类型。

我喜欢这样的东西:

myModule.js
/**
 * Universally unique identifier.
 * @typedef {string} UUID
 */
myOtherScript.js

/**
 * @function
 * @param {import('path/to/myModule.js').UUID} uuid
 */
function getByUUID(uuid) { ... }

这并不能使typedef严格地成为全球性的,所以您不能做@param {UUID} uuid(这会更干净,但是我还没有找到一种方法来实现这样),但是这种方法适用于我的用例,并且绝对比在任何使用该类型的地方重写类型都要好。

有关该主题的更多信息,请参见this Github issue