【问题标题】:How to describe destructured object arguments in JSDoc如何在 JSDoc 中描述解构对象参数
【发布时间】:2017-11-22 12:10:33
【问题描述】:

如果我有一个将对象作为参数的 JavaScript 函数,我可以使用 JSDoc 描述对象的预期属性,如下所示:

/**
 * @param bar
 * @param bar.baz {number}
 * @param bar.qux {number}
 */
function foo(bar) {
    return bar.baz + bar.qux;
}

如果我使用 ECMAScript 6 解构定义我的函数,而不给真正的参数对象命名,我该如何描述这些属性?

const foo = ({ baz, qux }) => baz + qux;

【问题讨论】:

  • 我们仍然没有一个好的答案
  • @Maxwells.c 接受的答案有什么问题?
  • 没关系。这是一个很好的解决方案并且有效。我只是在寻找一个不那么冗长的。例如,JSDoc 接受这个@param {Object} { bar, qux }。以这种方式引用描述的gux会很棒,更少的代码。

标签: javascript ecmascript-6 jsdoc


【解决方案1】:

事实证明 JSDoc 确实支持通过组成占位符名称进行破坏。它缺乏官方文档。

http://usejsdoc.org/tags-param.html#parameters-with-properties

/**
 * @param {Object} param - this is object param
 * @param {number} param.baz - this is property param
 * @param {number} param.qux - this is property param
 */
const foo = ({ baz, qux }) => baz + qux;

【讨论】:

  • 这在 VSCode 1.23.1 中对我不起作用。这是 VSCode 的限制吗?
  • 请注意,此功能的官方 JSDoc 文档现在是 here
  • Here 是关于此功能在 VSCode 中不起作用的具体问题。
【解决方案2】:

我也有同样的问题。现在我正在使用 Visual Code Studi,它的插件是这样的(这很适合我):

/**
 * @param  {} {a
 * @param  {} b
 * @param  {} c}
 * @param  {} {d}
 */
const aaa = ({a,b,c},{d}) => {

}

【讨论】:

    猜你喜欢
    • 2011-09-21
    • 2017-02-17
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 2021-03-09
    • 2021-03-09
    • 2020-05-21
    • 2019-09-23
    相关资源
    最近更新 更多