Heap.Enum

Объявляет поле, которое может принимать значение любого из вариантов заданного Typescript Enum.

Применение / сигнатура

import { Heap } from '@app/heap'
Heap.Enum(targetEnum, options)

Enum-ы не рекомендованы к использованию в языке Typescript, но поддерживаются для обратной совместимости. Поэтому данный тип схемы также не рекомендуется использовать, если вы уже не используете Enum-ы в своей модели данных. Рассмотрите Heap.Union в качестве альтернативы.

Аргументы

  • targetEnum: Enum object *
    Enum, объявленный в typescript-коде, которому должно соответствовать данное поле.

  • options: {default}
    Объект с дополнительными необязательными параметрами поля.

Возвращаемое значение

JSON-схема anyOf со строковыми и/или числовыми литералами, соответствующими всем возможным значениям targetEnum.

Примеры

Простой Enum со строковыми значениями
enum CustomerStatus {
  New = 'New',
  Returning = 'Returning',
  Lost = 'Lost',
}
const customers = Heap.Table('customers', {
  age: Heap.Enum(CustomerStatus, { default: CustomerStatus.New }),
})
Смешанный enum (строка и числа) на базе enum-подобного объекта
const enumLikePossibleGrades = {
  bad: 1,
  better: 3,
  good: 4,
  great: 'excellent!',
}
const pupils = Heap.Table('pupils', {
  grade: Heap.Enum(enumLikePossibleGrades),
})
await pupils.create(ctx, { grade: 4 })
await pupils.create(ctx, { grade: 'excellent!' })

❤️ Made with love on Chatium

ООО "Чатиум"

Информация о компании