您的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
答案 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
}