gpt4 book ai didi

javascript - 模板化对象的 JSDoc 对象

转载 作者:搜寻专家 更新时间:2023-11-01 04:41:02 26 4
gpt4 key购买 nike

有没有办法松散地指定您正在记录的对象中应该包含什么类型的对象?

我正在寻找记录以下内容的对象:

var obj = {
unknownName1: {
name: "KnownValue"
},
unknownName2: {
name: "KnownValue",
offset: {
x: 0,
y: 0
}
},
unknownName3: {
name: "KnownValue",
offset: {
x: 0,
y: 0
},
visible: true
},
unknownName4: {
name: "KnownValue"
}
};

子对象应具有以下属性:

/**
* Example Object
* @typedef myObject
* @type {Object}
* @property {String} name - Name of the templated object
* @property {Number} [offset.x] - Offset X
* @property {Number} [offset.y] - Offset Y
* @property {Boolean} [visible] - Is Visible
* @memberof com.namespace.MyClass
*/

如果我想记录这个特定的 obj,我会执行以下操作,但是该对象将动态生成,其中包含未知数量的未知名称的对象,类型为 com.namespace .MyClass

/**
* Object of Special Objects
* @typedef mySpecialObjectOfObjects
* @type {Object}
* @property {com.namespace.MyClass.myObject} unknownName1
* @property {com.namespace.MyClass.myObject} unknownName2
* @property {com.namespace.MyClass.myObject} unknownName3
* @property {com.namespace.MyClass.myObject} unknownName4
* @memberof com.namespace.MyClass
*/

附言我只是在寻找可以使用的通配符 @property,以便我的编辑器可以帮助我记住对象内每个子对象的所有可用选项。

最佳答案

根据 http://usejsdoc.org/tags-type.html ,从 JSDoc 3.2 开始,JSDoc 已经完全支持 Google Closure Compiler 类型表达式。 http://usejsdoc.org/tags-type.html#jsdoc-types 中描述了一种这样的格式:

{Object.<string, number>}

所以在你的情况下,你应该能够做到:

/**
* Object of Special Objects
* @typedef mySpecialObjectOfObjects
* @type {Object.<string, com.namespace.MyClass.myObject>}
* @memberof com.namespace.MyClass
*/

你甚至可以用它自己的类型替换那里的 string,如果你想要一个特殊的类型专用于详细说明允许的字符串值的名称。

关于javascript - 模板化对象的 JSDoc 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30360391/

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