【问题标题】:JS Closure Compiler, @param syntax for array destructuring?JS Closure Compiler,@param 用于数组解构的语法?
【发布时间】:2018-11-27 16:35:41
【问题描述】:

我找不到用于数组解构的@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

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

【问题讨论】:

  • 对于像我一样希望 JSDoc 的解构支持能够解决这个问题的其他人来说,似乎不是。我回答希望它会(你可以在这里看到答案:pastebin.com/dNgVLCMd),但 OP 说它不起作用。 (谢谢你让我知道,junvar,祝你好运——可能 CC 还不支持这个。)
  • 您的回答仍然有助于提供背景信息;谢谢。

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


【解决方案1】:

Closure Compiler 目前不支持不同数组索引的不同类型。所以在这种情况下,你要做的就是:

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

【讨论】:

    猜你喜欢
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多