具有导入/导出语法的 JSDOC(ES 模块)

use*_*783 7 javascript documentation jsdoc

import在使用and时,如何使用 JSDoc 指定模块的导出(公共)属性export

我的模块结构是

/lib
 |- src/
 |  |- func-a.js
 |  |- func-b.js
 |- index.js   
Run Code Online (Sandbox Code Playgroud)

lib/src/func-a.js

/lib
 |- src/
 |  |- func-a.js
 |  |- func-b.js
 |- index.js   
Run Code Online (Sandbox Code Playgroud)

lib/src/func-b.js

/** Module for queue A
 * @exports funcA/funcA
 */

/**
 * Processes A queue
 * @public
 * @param {number} n - input number
 * @returns {number} result - output number
 */
const funcA = (n) => {
  return addTwoToN(n)
}

/**
 * Adds integer two to input
 * @private
 * @param {number} n - input number
 * @returns {number} addition - input plus two
 */
const addTwoToN = (n) => n + 2

export default funcA
Run Code Online (Sandbox Code Playgroud)

最后lib/index.js

/**
 * Processes B queue
 * @public
 * @param {number} n - input number
 * @returns {number} result - output number
 */
const funcB = (n) => {
  return subtractTwoFromN(n)
}

/**
 * @private
 * @param {number} n - input number
 * @returns {number} subtraction - input minus two
 */
const subtractTwoFromN = (n) => n - 2

export default funcB
Run Code Online (Sandbox Code Playgroud)

现在,如果我创建一些其他 Javascript 文件并执行import { funcA, funcB } from 'lib/,它似乎会在编辑器中拾取注释,并且我会得到智能感知,这很好。当我尝试通过jsdocCLI 生成文档时,我遇到了困难,如下所示:

jsdoc lib/index.js --destination docs/

我最终得到的是这样的:

JSDOC 文档

不完整,没有funcB提及。当打开funcA侧边栏中的链接时,我只得到这个:

JSDOC 详细文档

库的该部分没有 API 文档。

我可能以错误的方式处理这个问题。我什至可以使用多个@module注释吗?或者我应该改用@typedef?我希望文档基本上显示 的结构lib/并显示标记为 的项目的注释@public,但也许我的期望完全不同。