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

Posted

技术标签:

【中文标题】JSDoc:模块和命名空间之间的关系是啥【英文标题】:JSDoc: What is a relationship between modules and namespacesJSDoc:模块和命名空间之间的关系是什么 【发布时间】:2015-06-10 18:21:25 【问题描述】:

我在理解联合中命名空间和模块的用途时遇到了问题。例如我有一个班级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】:

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

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

/**
* @module utils
*/

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

【讨论】:

感谢您看这个有点颠倒。我试图用一个点来记录一个命名空间,但是点后面的对象当然是父命名空间的一个属性。

以上是关于JSDoc:模块和命名空间之间的关系是啥的主要内容,如果未能解决你的问题,请参考以下文章

模块与命名空间:组织大型打字稿项目的正确方法是啥?

vuex中模块的命名空间到底是啥

C#中类和命名空间是啥?为啥要用?啥时候用到?请高手详细说明

Python中的命名空间是啥?

类、包、命名空间和模块之间有啥区别?

F# 中模块和命名空间之间的区别