Как документировать деструктурированные параметры в JSDoc? - PullRequest
0 голосов
/ 16 октября 2019
async function userInformation({ userId, token }) {
  const body = {
    user: userId
  };

  const headers = {
    Authorization: `Bearer ${token}`,
    'Content-Type': 'application/x-www-form-urlencoded'
  };

  const url = 'https://example.com/api/users';

  const data = await axios.post(url, headers, qs.stringify(body));

  return data;
}

Рассмотрим этот код. Как мне написать jsdoc для этой функции? Как убедиться, что типы параметров были определены в jsdoc?

1 Ответ

0 голосов
/ 19 октября 2019

Даже если вы деструктурировали свои параметры, они все равно исходили из одного источника (объекта), который вам и необходим для документирования.

Я бы порекомендовал использовать @typedef для описания формы объектаи используйте его как тип при документировании вашей функции.

/**
 * @typedef {object} Credentials
 * @property {number} userId
 * @property {string} token
 */

/**
 * @param {Credentials} credentials
 */
async function userInformation({ userId, token }) {
  // ...
}

Вот скриншот из кода VS, показывающий, что он может интерпретировать этот блок документа. (Я уверен, что другие IDE могут сделать то же самое)

enter image description here

...