是否有支持参数转换和“多态”的JavaScript文档生成器?

时间:2014-03-13 00:21:26

标签: javascript node.js ecmascript-5

您的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
});

除了“使用通用注释/文档块”之外,我们对任何建议表示赞赏。

这是相关的,但不是重复的: Document generic type parameters in JSDOC

1 个答案:

答案 0 :(得分:4)

It looks like JSDoc supports overloading of functions@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
}