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

JSDoc: What is a relationship between modules and namespaces

本文关键字:之间 关系 是什么 空间 模块 JSDoc      更新时间:2023-09-26

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

/**
 * @namespace Game
 */
/**
 * @module utils
 * @memberOf Game
 */
/**
 * Create a matrix
 * @constructor
 */
function Matrix(){}

它创建了一个文档,Matrix类的名称路径是Game.utils~ Matrix,但如果我遵循Module链接,则其名称路径是不带Game名称空间前缀的Module: utils,如果我遵循了Game链接,则它不包含utils模块链接。

此外,我不能向这个模块添加另一个类,因为这个类没有显示在utils模块选项卡中:

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

问题是:对名称空间和模块进行文档化的正确方法是什么?它们各自的用例是什么?

我玩了一点,我想在名称空间中放置模块有点棘手。对我来说,有效的方法是定义一个模块utils和一个引用它的命名空间。然而,这个模块被称为utils,而不是Game.utils,但在Game中,你可以看到一个链接到它的属性。

/**
 * @namespace Game
 * @property {module:utils} utils
 */
/**
* @module utils
*/
/**
 * Create a matrix
 * @class
 */
function Matrix(){}