gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 18:13:12 25 4
gpt4 key购买 nike

@type 上的 UseJSDoc.org 页面解释如何记录数组和对象,而不是对象数组。我的函数接受一组具有特定属性列表的对象,我想记录这些属性。

该函数可能看起来像 function foo(people) 并且 people 数组可能是由函数的调用者创建的

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 的对象,尽管代码不会引用任何东西)不是一个合适的类,甚至没有在任何地方命名。也没有在任何地方为我使用 @property 定义一个“Person”标签。

用 JSDoc3 记录这种代码的困难可能表明组织不善,我很乐意考虑有关如何重组像这样的临时对象的建议,主要用作哈希表(关联数组)。

最佳答案

有两种方法:

/**
* @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 代码中没有任何对应的“类”。

关于javascript - 函数参数是对象数组的 JSDoc3 文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25440142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com