Как правильно документировать обратные вызовы с помощью jsdoc?

Я потратил довольно много времени на поиск в Интернете, чтобы найти лучший способ правильно документировать обратные вызовы с помощью jsdoc, но, к сожалению, я еще не нашел отличный.

Вот мой вопрос:

Я пишу библиотеку Node.js для разработчиков. Эта библиотека предоставляет несколько классов, функций и методов, с которыми разработчики будут работать.

Чтобы сделать мой код ясным и понятным, а также (надеюсь) автоматически сгенерировать некоторую документацию по API в будущем, я начал использоватьJSDoc в моем коде, чтобы самостоятельно документировать, что происходит.

Допустим, я определил функцию, подобную следующей:

function addStuff(x, y, callback) {
  callback(x+y);
});

Используя jsdoc, я сейчас документирую эту функцию следующим образом:

/**
  * Add two numbers together, then pass the results to a callback function.
  *
  * @function addStuff
  * @param {int} x - An integer.
  * @param {int} y - An integer.
  * @param {function} callback - A callback to run whose signature is (sum), where
  *  sum is an integer.
  */
function addStuff(x, y, callback) {
  callback(x+y);
});

Я чувствую, что вышеупомянутое решение является своего рода взломом, так как я не могу указать в абсолютном выражении, что должна принимать функция обратного вызова.

В идеале я хотел бы сделать что-то вроде:

/**
  * Add two numbers together, then pass the results to a callback function.
  *
  * @function addStuff
  * @param {int} x - An integer.
  * @param {int} y - An integer.
  * @param {callback} callback - A callback to run.
  * @param {int} callback.sum - An integer.
  */
function addStuff(x, y, callback) {
  callback(x+y);
});

Похоже, что вышеизложенное позволило бы мне более просто передать то, что должен принять мой обратный вызов. Имеет ли это смысл?

Наверное, мой вопрос прост: как лучше всего документировать мои функции обратного вызова с помощью jsdoc?

Спасибо за ваше время.

Ответы на вопрос(3)

Ваш ответ на вопрос