【问题标题】:JSDoc is this how you mark a @typedef as @global?JSDoc 这就是您将@typedef 标记为@global 的方式吗?
【发布时间】:2018-03-08 07:07:33
【问题描述】:

只需确保在我们的 Node 服务器中的模块中这样做是能够在整个应用程序中使用 @typedef 的正确方法,而不是在需要的每个模块/文件中重复它。从文档中我无法确定这是否正确,并且是否有人对在哪里存储全局 @typedef 有意见,以便在整个应用程序中使用它们时很容易找到它们是否需要更改。

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

【问题讨论】:

  • 您确定这是否正确?
  • 不,但我最终还是使用了它,因为代码需要文档,这就是文档似乎引导其使用的方式。即使现在没有人改变它,所以我的团队对正确使用没有更好的想法,但感觉它提供了清晰性,并且很容易确定意图,这可能就足够了。
  • 感谢您的快速回复。估计我也会用!希望有一天我们能得到一个“官方”的答案——我只是再次搜索了@global@typedef文档+谷歌无济于事:(

标签: javascript jsdoc jsdoc3


【解决方案1】:

这里的答案有点晚,但我从 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找到有关此主题的更多信息。

【讨论】:

    猜你喜欢
    • 2022-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多