Javascript 函数参数是对象数组的JSDoc3文档?

Javascript 函数参数是对象数组的JSDoc3文档?,javascript,arrays,object,jsdoc,jsdoc3,Javascript,Arrays,Object,Jsdoc,Jsdoc3,org上的页面解释了如何记录数组和对象,而不是对象数组。我的函数接受具有特定属性列表的对象数组,我要记录的就是这些属性 函数可能看起来像函数fooppeople,而人员数组可能是由函数的调用者创建的 arr = []; arr.push({name: "Alfred", profession: "Butler", hitpoints: 2}); arr.push({name: "Batman", profession: "Vigilante", hitpoints: 42}); // ... f

org上的页面解释了如何记录数组和对象,而不是对象数组。我的函数接受具有特定属性列表的对象数组,我要记录的就是这些属性

函数可能看起来像函数fooppeople,而人员数组可能是由函数的调用者创建的

arr = [];
arr.push({name: "Alfred", profession: "Butler", hitpoints: 2});
arr.push({name: "Batman", profession: "Vigilante", hitpoints: 42});
// ...
foo(arr)
我想使用{{name:string,profession:string,hitpoints:number}}Person语法来记录对象,但也要包含一个概念,即它们必须在数组中

注意,上面我称之为Person的底层对象,尽管代码不会引用任何东西,因为它不是一个合适的类,但它甚至没有在任何地方命名。也没有一个人被定义在任何地方让我使用标签


使用jsDOC3来记录这种代码的困难可能会提示组织不好,我很乐意考虑如何重新组织这样的短命对象,主要用作哈希表关联数组。

< P>这里有两种方法:

/**
 * @param {Array.<{name: string, profession: string, hitpoints: number}>} people The people.
 */
function foo(people) {
}

/**
 * @typedef Person
 * @property {string} name
 * @property {string} profession
 * @property {number} hitpoints
 */

/**
 * @param {Array.<Person>} people The people.
 */
function foo2(people) {
}
注意,您可以告诉jsdoc代码中实际上不存在的东西@typedef就是一个很好的例子。我还使用@class来记录@typedef无法处理的抽象数据结构。我在文档中注意到,这些是伪类,在JavaScript代码中没有任何对应的类