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。或者真的有两个功能。对于参数选项完全不同的函数,我不太确定该怎么说。。。我会推迟判决,直到我看到一个具体的案件,然后我只会判决那个案件。