如何将JSDoc与非结构化导入一起使用?

时间:2019-02-03 13:46:46

标签: node.js visual-studio-code jsdoc

我将VSCode用作NodeJS编辑器和Preview JSDOC扩展名。

我想知道如何在重组导入中使用JSDoc。请参见下面的示例。

我创建了一个模块,Module A

/**
 * Some function description
 * @return a string + 1234
 */
const myFuncA = (someParams) => {
  return `${someParams} 1234` // or whatever
};

/**
 * This is a string.
 */
const myPropB = "A string";

// ...

module.exports = {
  myFuncA, 
  myPropB
}

在模块B中,我想使用模块A中的一些属性或功能: Module B

const { myFuncA } = require('../moduleA');

const propA = myFuncA(4321);

但是,将鼠标悬停在myFuncA上(或键入myFuncA(...时)将不显示说明。

我是JSDoc的新手,但是their docs并不涵盖我的具体情况。

1 个答案:

答案 0 :(得分:1)

我也在寻找答案,我认为此解决方案的最佳方法是使用@memberof module:<your-module-name>语法。

因此,在顶部的模块B中,您将添加以下内容

/** module MyModuleName */

const { myFuncA } = require('../moduleA');

然后在模块A中添加@memberof module:<module-name>装饰器。

/**
 * Some function description
 * @return a string + 1234
 * @memberof module:MyModuleName
 */
const myFuncA = (someParams) => {
  return `${someParams} 1234` // or whatever
};

其他信息: 在寻找解决方案时,我假设JSDoc将解决导入问题。 JSDoc不解析导入,这很有意义。如果您希望某个函数属于另一个模块,则必须告知JSDocs。感谢这个github issue thread,它帮助我确定了这个答案。