Как документировать массив деструктурированных параметров в JSDoc - PullRequest
1 голос
/ 05 февраля 2020

Учитывая следующий код, как правильно документировать, что с использованием последней версии JSDo c?

function docMe([foo, bar = null, baz = 1]) { 
  /* */ 
}

я пробовал это:

/**
 * @param {Array} options Array containing the options.
 * @param {HTMLElement} options[0].foo An HTML element.
 * @param {Object} [options[1].bar] An object.
 * @param {Number} [options[2].baz] A number.
 */

Очевидно, что это не так работать, и все, что упоминается в документации JSDo c, - это как задокументировать параметр object с неструктурированным массивом .

1 Ответ

2 голосов
/ 06 февраля 2020

На момент написания этой статьи существует открытый выпуск для этого в компиляторе Closure.

Этот поток выдает 3 несовершенных решения:

1: @param for JSDocs3 :

/**
 * Assign the project to an employee.
 * @param {Array} param1
 * @param {string} param1.foo
 * @param {*?} param1.bar
 * @param {number} param1.baz
 */
function docMe([foo, bar = null, baz = 1]) {
    // ...
};

2: сообщил о работе в VSCode (я не пользователь, поэтому не могу подтвердить)

/**
 * @param {[foo, bar, baz]: [string, *, Number]} param1
 */
function docMe([foo, bar = null, baz = 1]) {
  // ...
}

3: для закрытия компилятор: дождитесь решения проблемы и используйте этот формат. Он, очевидно, ожидает исправления и разблокирован, так что, надеюсь, он скоро будет решен.

...