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

Oli*_*ins 12 javascript jsdoc

我有一个看起来像这样的数组:

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

},
{
    "name": "c917389",
    "email": "jane@bmw.de"
}]
Run Code Online (Sandbox Code Playgroud)

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

/**
 * @param {?}  data
 */
update:  function(data) {...}
Run Code Online (Sandbox Code Playgroud)

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

Oli*_*ins 22

我刚刚弄清楚了我的问题的答案:

它看起来像这样:

/**
 *
 * @param {{name:string, email:string}[]}  
 *
 */
Run Code Online (Sandbox Code Playgroud)

  • 您的意思是@param {{name:string,email:string,...} []}?Webstorm不喜欢它 (2认同)

Wil*_*ilt 21

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

@param{Array.<MyClass>}
Run Code Online (Sandbox Code Playgroud)

那么你也可以这样做:

@param{Array.<Object>}
Run Code Online (Sandbox Code Playgroud)

然后这也是有道理的:

@param{Array.<{name:string, email:string}>}
Run Code Online (Sandbox Code Playgroud)


Aln*_*tak 9

因为对象内容没有任何内在的"特殊",我相信你只需将它声明为:

@param {Object[]} data
Run Code Online (Sandbox Code Playgroud)

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

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