如何在对象属性中使用JSDoc中的Enum注释

时间:2019-07-05 17:00:09

标签: javascript sequelize.js comments jsdoc jsdoc3

我开始更频繁地使用jsdocs,并且搜索了如何使用枚举类型,但仍然对此感到怀疑。

这是JSDocs的用法定义:Enum definition at JSDocs 显示的示例是关于单个枚举对象的,如果我有一个特定字段是枚举类型的对象,它将如何工作?

考虑Im使用序列化序列及其定义是关于模型的。

例如。

/**
* @name Car
* @typedef {Object} Car - This is a car Model.
* @property {string} type - Enum type.
* @property {string} color - This is an attribute for car's color
*/
const Car = {
  // This should be considered as an enum type of strings.
  type: {
    type: ENUM,
    values: ['0', '1'],
    defaultValue: '0',
  },
  color: { 
    type: STRING,
    defaultValue: 'color',
  }
}

所以,我认为应该起作用的方式就像(不太花哨):

{ 
  ...
  /**
    * @enum
  */
  type: {
    type: ENUM,
    values: ['0', '1'],
    defaultValue: '0',
  },
  ...
}

我想知道是否有一些像这样的选项:

/**
* @name Car
* @typedef {Object} Car - This is a car Model.
* @property {string} type - Enum type.
* @enum
* @default 'Car1'
* @property {string} color - This is an attribute for car's color
*/

有人对此有何建议?

1 个答案:

答案 0 :(得分:1)

如果您有一个类型,则将您的枚举与汽车模型分开并在其中引用。我认为您可以使用JSDoc枚举。

const CarType = {
 CarType1: 'CarType1',
 CarType2: 'CarType2',
}

const Car = {
  type: CarType
  color: 'some string',
}