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 文档提到的只是如何记录解构的对象参数,而不是解构的数组参数。
截至撰写本文时,闭包编译器中存在一个未解决的问题。
该线程产生了 3 个不完美的解决方案:
/**
* 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 编译器:等待问题解决并使用该格式。它显然正在等待修复,并且已解锁,所以希望它很快就能解决。