JS Closure Compiler,用于数组解构的@param语法?

时间:2018-11-27 16:35:42

标签: javascript ecmascript-6 google-closure-compiler destructuring

我无法为数组解构的@param注释找到正确的语法。例如:

let destructArray = ([one, two]) => one + two;

我尝试模仿对象分解语法:

// object destructuring works
/** @param {{one: number, two: number}} o */
let destructObject = ({one, two}) => one + two;

// array destructuring does not works
/** @param {[one: number, two: number]} a */
let destructArray = ([one, two]) => one + two;

但这不是有效的语法。我也尝试过/** @param {Array<number>} a */,但是随后它期望一个名为a的参数,而不是onetwo

有人知道用于数组解构的正确语法吗?

1 个答案:

答案 0 :(得分:1)

Closure Compiler当前在不同的数组索引处不支持不同的类型。因此,在这种情况下,您要做的就是:

/** @type {function(!Array<number>):number} */
let destructArray = ([one, two]) => one + two;