Связано: Правильный способ документирования открытых аргументных функций в JSDoc
У меня есть функция, которая принимает несколько массивов, обращаясь к переменной arguments
:
/**
* @param options An object containing options
* @param [options.bind] blablabla (optional)
*/
function modify_function (options) {
for (var i=1; i<arguments.length; i++) {
// ...
}
}
Теперь я знаю, что каждый аргумент, кроме options
, представляет собой массив, содержащий значения, которые стоит задокументировать:
[search_term, replacement, options]
Я не рассматриваю возможность размещения (длинного) описания в строке переменных параметров.
@param {...} Массив условий поиска, замен и его параметров; индекс 0: поисковый запрос внутри функции; 1: текст замены; 2: необязательные параметры (catch_errors: ловит ошибки и регистрирует их, escape: экранирует доллары в тексте замены, pos: «L» для размещения замены перед поисковым запросом, «R» для размещения после) Нечитаемое решение и типа не видно.
Есть ли способ документировать типы и значения переменных параметров?
@param {...[]} An array with search terms, replacements and its options
@param {...[0]} The search term within the function
@param {...[1]} The replacement text
@param {...[2]} An optional object with obtions for the replacement
@param {...[2].catch_errors} catches errors and log it
@param {...[2].escape} etc...
Вышеприведенное выглядит уродливо, но должно дать вам представление о том, чего я пытаюсь достичь:
- задокументировать тип переменного параметра (в данном случае массив)
- задокументировать значения этого массива
- задокументировать свойства объекта внутри этого массива
Для лени я использовал массив вместо объекта. Другие предложения всегда приветствуются.