如何在JSDoc中记录结构化参数?

时间:2019-10-16 10:07:18

标签: javascript node.js documentation jsdoc

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 :(得分:0)

即使您解构了参数,它们仍然来自一个需要记录的来源(一个对象)。

我建议使用@typedef描述对象的形状,并在记录函数时将其用作类型。

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

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

这是VS Code的屏幕录像,显示它可以解释此doc块。 (我确定其他IDE可以做到这一点)

enter image description here