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

时间:2013-02-09 07:28:47

标签: javascript jsdoc

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

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

    // ...
};

可以使用事件名称和处理程序调用该函数,也可以仅使用处理程序调用该函数。如果存在事件名称,则从该特定事件中删除处理程序,否则它将从事件发射器中完全删除。

如何在JsDoc中记录此类方案?在这种情况下,我当然可以只记录出现的参数,并注意“event_name可以省略,在几何情况下(等等......)”,但我当然可以想象那些不可能的情况。

1 个答案:

答案 0 :(得分:2)

您可以使用@also标记提供多种方法签名:

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