Как использовать аннотацию Enum из JSDoc в свойствах объекта - PullRequest
0 голосов
/ 05 июля 2019

Я начал чаще использовать jsdocs, и я искал, как использовать тип enum, и все еще сомневался в этом.

Вот определение использования в JSDocs: Определение Enum в JSDocs Показанный пример относится к одному объекту enum, как он будет работать, если у меня есть объект, одно конкретное поле которого является типом Enum?

Считаете ли вы, что я использую форму sequelize и определение, которое она имеет околоМодель.

Например.

/**
* @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 Ответ

1 голос
/ 05 июля 2019

Если у вас есть тип внутри типа, отделите свой enum от модели автомобиля и укажите его там. Я думаю, что таким образом вы можете использовать перечисление JSDoc.

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

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