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

时间:2015-04-06 10:52:03

标签: javascript module jsdoc javascript-namespaces jsdoc3

我在理解联合中命名空间和模块的目的时遇到了问题。例如,我有一个班级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 1}}名称空间前缀,如果我按照Game链接,它不包含utils模块链接。

此外,我无法在此模块中添加另一个类,因为此类未显示在utils模块选项卡中:

/**
 * Create Dictionary
 * @memberOf Game.utils
 * @constructor
 */
function Dictionary(){}

问题是:记录命名空间和模块的正确方法是什么?每个命名空间和模块的用例是什么?

1 个答案:

答案 0 :(得分:4)

我玩了一下,我想在名称空间中使用模块有点棘手。对我有用的是定义一个模块utils和一个引用它的命名空间。该模块名为utils但不是Game.utils,而是Game,您可以看到链接到该模块的属性。

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

/**
* @module utils
*/

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