JSDoc无法识别导出的函数

时间:2016-12-24 08:12:25

标签: javascript node.js jsdoc3

我正在制作node.js项目,并在Webstorm中工作,其中函数通常以黄色突出显示。但是,在以下情形中,fnA未被识别为文件b中的函数。

//file a.js
module.exports = fnA;

/**
 * Converts val to someOtherVal
 * @param val
 * @return someOtherVal
 */

function fnA( val ){
   //Do something with val....
   return someOtherVal
}
//file b.js

var fnA = requires('./a.js');

function fnB() {
  var c = fnA(3); //<- not recognized as a function
}

但是,如果我将函数包装在命名空间中,它可以正常工作:

 //a.js
 module.exports = fnA;

/**
 * Converts val to someOtherVal
 * @param val
 * @memberof core
 */

function fnA( val ){
   //Do something with val....
   return someOtherVal
}
__________________________________________________
//b.js
/**
 * @namespace
 */
var core = {
   fnA : requires('./a.js')
}


function b() {
  var c = core.fnA(3); //Recognized as a function
}

我想避免将函数包装在命名空间中 - 在第一个示例中jsdoc函数的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

JSDoc 3.6.6 中的相同问题(无法识别导出定义的函数)

解决方法: 定义函数而不导出并导出对象。

//file.js
const function1 = () => {
  ...
}
const function2 = () => {
  ...
}

export {
  function1,
  function2
}