如何在JSDoc中将对象数组作为参数进行记录?

时间:2013-06-18 08:21:54

标签: javascript jsdoc

我有一个如下所示的数组:

[{
    "name": "c917379",
    "email": "jim@bmw.de"

},
{
    "name": "c917389",
    "email": "jane@bmw.de"
}]

这是一个任意长度的数组,带有许多重复的字段(为了清晰起见,我将其缩减为两个字段)。这会传递给JavaScript方法。

/**
 * @param {?}  data
 */
update:  function(data) {...}

我想知道你将如何在JSDoc中记录这一点。 IE浏览器。你会如何记录问号所在的类型?

4 个答案:

答案 0 :(得分:21)

我刚刚找到了问题的答案:

看起来像这样:

/**
 *
 * @param {{name:string, email:string}[]}  
 *
 */

答案 1 :(得分:21)

JSDoc 中,给出了一个成员类型为MyClass的数组的示例。它看起来像这样:

@param{Array.<MyClass>}

那么你也可以这样做:

@param{Array.<Object>}

然后这也是有道理的:

@param{Array.<{name:string, email:string}>}

答案 2 :(得分:8)

由于你的对象内容没有任何内在的“特殊”,我相信你只需将其声明为:

@param {Object[]} data

另一种方法是为你的“类”声明一个“正确”的构造函数,然后用该函数名替换Object

这种封装也可能有助于代码的其他部分; - )

答案 3 :(得分:1)

由于这是出现在Google上的第一个问题,我认为这对显示如何对二维数组进行记录很有用。

默认的sintax不起作用,它显示为“ JsDoc sinxtax error”:

/**
 * @param {Object[][]} a two dimensional array of object
 * */

发信号二维数组的正确方法是:

/**
 * @param {Array.<Array.<Object>>} a two dimensional array of object
 * */