Javascript 模板化对象的JSDoc对象
有没有一种方法可以松散地指定您正在记录的对象内部应该是什么类型的对象 我希望记录以下对象:Javascript 模板化对象的JSDoc对象,javascript,documentation,jsdoc,Javascript,Documentation,Jsdoc,有没有一种方法可以松散地指定您正在记录的对象内部应该是什么类型的对象 我希望记录以下对象: var obj = { unknownName1: { name: "KnownValue" }, unknownName2: { name: "KnownValue", offset: { x: 0, y: 0 } }, unknownName3: { name: "KnownValue", offset: {
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
,这样我的编辑器就可以帮助我记住对象中每个子对象可用的所有选项。根据,从JSDoc 3.2开始,JSDoc已经完全支持Google闭包编译器类型表达式。其中一种格式描述如下:
{Object.}
因此,在您的情况下,您应该能够:
/**
* Object of Special Objects
* @typedef mySpecialObjectOfObjects
* @type {Object.<string, com.namespace.MyClass.myObject>}
* @memberof com.namespace.MyClass
*/
/**
*特殊对象的对象
*@typedef mySpecialObjectOfObjects
*@type{Object.}
*@memberof com.namespace.MyClass
*/
如果您想让一个特殊类型专门用于名称,详细说明允许的字符串值,您甚至可以将string
替换为它自己的类型
/**
* Object of Special Objects
* @typedef mySpecialObjectOfObjects
* @type {Object.<string, com.namespace.MyClass.myObject>}
* @memberof com.namespace.MyClass
*/