如何在JSDoc中引用模块中的常量

时间:2016-03-16 21:37:41

标签: javascript node.js module constants jsdoc

我有以下模块导出常量:

/** @module my_constants */
module.exports = {
    /** @const {number} */
    STATE_FOO: 1,
    /** @const {number} */
    STATE_BAR: 2
}

现在我有另一个模块,其中返回对象可以包含其中一个常量。我该如何参考呢?

我尝试过如下:

/**
 * @typedef {Object} Result
 * @property {string} name
 * @property {my_constants.STATE_FOO|my_constants.STATE_BAR}
 */

在JSDoc输出中,常量是逐字打印的,而不是链接的。有没有办法链接到常量或my_constants模块?

1 个答案:

答案 0 :(得分:0)

一个选项(我使用过的)是使typedef全局化:

/** @module my_constants */

/**
 * @typedef {Object} my_constants
 * @property {number} [STATE_FOO=1]  The foo state
 * @property {number} [STATE_BAR=2]  The bar state
 * @global
 */
module.exports = {
    STATE_FOO: 1,
    STATE_BAR: 2
}

然后你就可以使用它:

/**
 * @typedef {Object} Result
 * @property {string} name
 * @property {my_constants} some  Some constants
 */

当您创建jsdoc时,这将建立从some param类型到常量类型定义的链接。