JSDoc:模块和命名空间之间的关系是什么?

10

我在理解联合中命名空间和模块的目的时遇到了问题。例如,我有一个类Game.utils.Matrix。我想将Game注释为命名空间,utils注释为模块,将Matrix注释为类:

/**
 * @namespace Game
 */

/**
 * @module utils
 * @memberOf Game
 */

/**
 * Create a matrix
 * @constructor
 */
function Matrix(){}

它创建了一个文档,Matrix 类的名称路径为 Game.utils~ Matrix,但如果我按照 Module 链接,它的名称路径是 Module: utils,没有 Game 命名空间前缀。如果我按照 Game 链接,它不包含 utils 模块链接。
此外,我无法将另一个类添加到此模块中,因为此类未显示在 utils 模块选项卡中。
/**
 * Create Dictionary
 * @memberOf Game.utils
 * @constructor
 */
function Dictionary(){}

问题是:如何正确记录命名空间和模块,以及它们各自的用途是什么?
1个回答

7

我稍微尝试了一下,我觉得在命名空间中使用模块有点棘手。对我来说有效的方法是定义一个名为utils的模块和一个引用它的命名空间。该模块被称为utils而不是Game.utils,但是在Game中,您可以看到一个链接到它的属性。

/**
 * @namespace Game
 * @property {module:utils} utils
 */

/**
* @module utils
*/

/**
 * Create a matrix
 * @class
 */
function Matrix(){}

感谢您对此进行了一些倒置的思考。我试图使用点来记录一个命名空间,但是当然点后面的对象是父命名空间的属性。 - DavidHyogo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接