2

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

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

    // ...
};

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

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

4

1 回答 1

3

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

/**
 *
 * @param {String} event_name
 * @param {Function} handler
 *
 * @also
 *
 * @param {Function} handler
 */
EventEmitter.prototype.remove_handler = function(event_name, handler) {
于 2014-04-04T00:25:40.497 回答