Javascript 如何在JsDoc中记录具有多个参数顺序选项的函数?

Javascript 如何在JsDoc中记录具有多个参数顺序选项的函数?,javascript,jsdoc,Javascript,Jsdoc,我有一个从EventEmitter类中删除事件处理程序的函数。它看起来像这样: EventEmitter.prototype.remove_handler = function(event_name, handler) { if(arguments.length < 2) { handler = event_name; event_name = null; } // ... }; EventEmitter.prototype.re

我有一个从
EventEmitter
类中删除事件处理程序的函数。它看起来像这样:

EventEmitter.prototype.remove_handler = function(event_name, handler) {
    if(arguments.length < 2) {
        handler = event_name;
        event_name = null;
    }

    // ...
};
EventEmitter.prototype.remove\u handler=函数(事件名称,处理程序){
if(arguments.length<2){
handler=事件名称;
事件名称=null;
}
// ...
};
可以使用事件名称和处理程序调用函数,也可以仅使用处理程序调用函数。如果事件名称存在,则处理程序将从该特定事件中删除,否则它将从事件发射器中完全删除


如何在JsDoc中记录这些场景?在这种情况下,我当然可以记录参数的显示,并注意“事件名称可以省略,在这种情况下(等等)”,但我当然可以想象不可能做到这一点的场景。

您也可以使用
@标记来提供多个方法签名:

/**
 *
 * @param {String} event_name
 * @param {Function} handler
 *
 * @also
 *
 * @param {Function} handler
 */
EventEmitter.prototype.remove_handler = function(event_name, handler) {

只需在函数的“一般注释”部分用纯文本进行解释,并声明可选的参数即可。@Mörre:是的,正如我在问题中所说的,在这种情况下有效,但对于参数选项更丰富的函数呢?例如,一个函数接受两组完全不同的参数。您需要像记录两个函数一样记录它,并且每个参数至少需要两行
@param
。这正是我所好奇的情况。正如我所说的,在评论部分用纯文本进行解释,如果这会使事情复杂化,则省略@param。或者真的有两个功能。对于参数选项完全不同的函数,我不太确定该怎么说。。。我会推迟判决,直到我看到一个具体的案件,然后我只会判决那个案件。