首页 > 解决方案 > 如何在 JSDoc 中记录数组解构参数

问题描述

给定以下代码,我如何使用最新的 JSDoc 正确记录它?

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.
 */

显然这不起作用,JSDoc 文档提到的只是如何记录解构对象参数,而不是解构数组参数。

标签: javascriptjsdocdestructuringjsdoc3

解决方案


在撰写本文时,Closure Compiler 中有一个未解决的问题。

该线程产生3个不完美的解决方案:

1:JSDocs3 的 @param

/**
 * 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:对于闭包编译器:等待问题解决并使用该格式。它显然正在等待修复,并且已畅通无阻,因此希望它很快得到解决。


推荐阅读