Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有JavaScript文档生成器支持参数转换和;多态性;?_Javascript_Node.js_Ecmascript 5 - Fatal编程技术网

是否有JavaScript文档生成器支持参数转换和;多态性;?

是否有JavaScript文档生成器支持参数转换和;多态性;?,javascript,node.js,ecmascript-5,Javascript,Node.js,Ecmascript 5,JavaScript库越“神奇”,就越不可能使用文档生成器 是否有人知道文档生成器允许对具有参数移位/参数多态性的函数进行文档化 function example(required, optional, callback) { if(typeof optional === 'function' && typeof callback === 'undefined') { callback = optional; optional = 'DEFAUL

JavaScript库越“神奇”,就越不可能使用文档生成器

是否有人知道文档生成器允许对具有参数移位/参数多态性的函数进行文档化

function example(required, optional, callback) {
   if(typeof optional === 'function' && typeof callback === 'undefined') {
       callback = optional;
       optional = 'DEFAULT VALUE';
   }

   // do work here
}
可称之为:

example(required, optional, function() {
  // do work
});

example(required, function() {
  // do work
});
除“使用通用注释/文档块”外,欢迎提出任何建议

这是相关的,但不是重复的:

通过
@name-fun@name-fun^2
我认为以下内容清楚地传达了您的意图

/**
    @name example
    @function
    @param {string} required
    @param {Function} callback
 */
 /**
    @name example^2
    @function
    @param {string} required
    @param {string} [optional='DEFAULT VALUE']
    @param {Function} callback
 */
function example() {
    if(typeof optional === 'function' && typeof callback === 'undefined') {
       callback = optional;
       optional = 'DEFAULT VALUE';
    }

    // do work here
}
然而,在您的情况下,我认为如果您只是将可选参数切换到末尾,那么您将不需要重载

/**
 * @param required
 * @param {Function} callback
 * @param {String} [optional='DEFAULT VALUE'] 
 */
function example(required, callback, optional) {
   if (typeof optional === 'undefined') {
       optional = 'DEFAULT VALUE';
   }   
   // do work here
}

我更新了我的答案,因为我不能真正测试它。也许JSDOC确实支持重载,我还没有测试过这个,但是,除了解决方法之外,您还提出了一个满足我需求的解决方案。这就是我在答案中寻找的。谢谢你的侦查。