У меня есть функция для удаления обработчиков событий из класса EventEmitter
. Это выглядит примерно так:Как записывать функции, которые имеют несколько параметров порядка параметров в JsDoc?
EventEmitter.prototype.remove_handler = function(event_name, handler) {
if(arguments.length < 2) {
handler = event_name;
event_name = null;
}
// ...
};
Функция может либо вызываться с именем события и обработчика, или просто обработчиком. Если имя события присутствует, обработчик удаляется из этого конкретного события, в противном случае он полностью удаляется из эмитента события.
Как документировать такие сценарии в JsDoc? В этом случае я мог бы просто документировать параметры по мере их появления и отметить, что «event_name может быть опущено, в любом случае (и т. Д.)», Но я, конечно же, могу представить себе сценарии, где это было бы невозможно.
Просто объяснить это в простом тексте в разделе комментариев общего для функции, и объявить параметр, который является необязательным, как таковой. –
@ Mörre: Да, как я сказал в своем вопросе, это работает в этом случае, но как насчет функции с более радикальным разнообразием параметров? Например, функция, которая принимает два * полностью * разных набора аргументов. Вам нужно будет документировать его почти так, как если бы это была две функции, и вам понадобилось бы по крайней мере две строки '@ param' для каждого параметра. Мне нравится эта ситуация. – Hubro
Как я уже сказал, объясните это в разделе комментариев в открытом тексте и оставьте @param, если это усложняет ситуацию. Или действительно ИМЕЮТ две функции. Я не уверен, что бы сказал, что функции, которые имеют совершенно разные варианты аргументов ... Я отложу суждение, пока не увижу конкретный случай, и тогда я буду судить только об этом случае. –