如何在JSDoc中指定对象数组作为参数或返回值?


105

在JSDoc中,如果您具有特定类型的数组(例如字符串数组),则我可以找到的最佳文档显示使用以下内容:

/**
 * @param {Array.<string>} myStrings All my awesome strings
 */
 function blah(myStrings){
     //stuff here...
 }

您将如何替换以下问号来指定对象数组?

/**
 * @param {???????} myObjects All of my equally awesome objects
 */
 function blah(myObjects){
     //stuff here...
 }

Answers:


180

您应该更具体地定义JSDoc的含义-这是一个通用术语,涵盖了几乎所有JavaScript的JavaDoc样式的文档工具。

您用于字符串数组的语法类似于Google Closure Compiler支持的语法。

使用此对象数组将是:

/**
 * @param {Array.<Object>} myObjects
 */

或仅由任何东西组成的数组-这几乎可以与所有文档工具一起使用:

/**
 * @param {Array} myArray
 */

jsdoc-toolkitJSDoc 3JSDuck支持以下语法来表示对象数组:

/**
 * @param {Object[]} myArray
 */

编辑

如果您知道键和值的变量类型,也可以执行以下操作:

/**
 * @param {Array.<{myNumber: Number, myString: String, myArray: Array}>} myObjects
 */

要么

/**
 * @param {{myNumber: Number, myString: String, myArray: Array}[]} myObjects
 */

10
的。现在不赞成使用该表示法,以后应删除其支持。当前正确的版本是{Array<Object>}。只是为了使该帖子保持最新状态。
Kenny806

2
使用JSDoc 3,您如何记录字符串数组的数组?用旧的语法,我可能会做类似的事情Array.<string[]>
Snekse 2015年

9
@ Kenny806已弃用?请提供参考文件?
威尔特

2
@Wilt:JSDoc文档与尖括号前的点矛盾
Dan Dascalescu

2
这个答案没有说明如何声明该数组中对象的键,以及如何声明具有特定键的对象数组作为返回类型。这个答案可以。
Dan Dascalescu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.