Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模板化对象的JSDoc对象_Javascript_Documentation_Jsdoc - Fatal编程技术网

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
 */