如何在 JSDoc 中记录数组解构参数

con*_*exo 5 javascript destructuring jsdoc jsdoc3

鉴于以下代码,我如何正确记录使用最新的 JSDoc?

function docMe([foo, bar = null, baz = 1]) { 
  /* */ 
}
Run Code Online (Sandbox Code Playgroud)

我试过这个:

/**
 * @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.
 */
Run Code Online (Sandbox Code Playgroud)

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

Gra*_*ath 6

截至撰写本文时,闭包编译器中存在一个未解决的问题。

该线程产生了 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]) {
    // ...
};
Run Code Online (Sandbox Code Playgroud)

2:报告在 VSCode 中工作(我不是用户,所以我无法确认)

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

3:对于 Closure 编译器:等待问题解决并使用该格式。它显然正在等待修复,并且已解锁,所以希望它很快就能解决。