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

标签 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 模块吗?

最佳答案

一个选项(我使用过的)是使 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 参数类型链接到常量类型定义。

关于javascript - 如何在 JSDoc 中引用模块中的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36047439/

相关文章:

JavaScript:日期对象发送到后端时转换为字符串

ruby - 模块类 << 自常量

javascript - 我可以将参数传递给使用 _.lodash 去抖动的函数吗?

node.js - Node bcryptjs 不是确定性的?

javascript - 使用 Javascript 进行拍手检测

node.js - 来自 Node url 请求的无效字符(非 UTF-8)但来自浏览器有效?

module - 如何向后移植 Ansible extras 模块?

php - 创建自定义 joomla 验证码

javascript - TinyMCE保留预定义的html结构

javascript - 仅当通过该查询字符串访问时才保留 URL 上的查询字符串