如何在JSDOC中记录对象数组

24

我有一个带有对象数组参数的函数,并希望使用 JSDOC 描述该参数(包括数组中对象的属性),就像这个示例一样:

/**
 * @param {Array.<Object>} filter - array of filter objects
 * @param ...
 */
function doSomething(filter) {
}

其中的filter是这样的:

filter = [
   {id: 'session', value: 1},
   {id: 'name', value: 'john'}
]

我该如何在jsdoc3中记录idvalue属性?


1个回答

40

像这样:

/**
 * @param {Object[]} filter - a list of literal filter objects
 * @param {string} filter[].id -  id to filter against...
 * @param {string|number} filter[].value - value to filter for...
 */
function doSomething(filter) {
    // do stuff
}

taken from http://usejsdoc.org/tags-param.html


有没有办法与 @typedef 一起使用?我想要做的事情本质上与 @param {Object[]} filter 相同,只是在 @typedef {Object[]} filter 中重复使用该类型,因为我经常需要重用它。我尝试了相同的方法,但将 @param(第一个除外,它变成了 @typedef)更改为 @type@typedef@param,但似乎没有任何作用。 - Geza Kerecsenyi
2
我更喜欢使用 Array.<Object> 而不是 Object[],例如 @param {Array.<Object>} filter。然而,当使用 Object[] 语法来定义数组时,VSCode 只能识别数组项的属性。在使用 Array.<Object> 时,是否有其他指定数组项属性的方法? - Felix Edelmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接