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}
Объект с дополнительными необязательными параметрами поля.- default:
array
Значение по умолчанию для данного поля. Подробнее о том, как работают значения по умолчанию, см.
Руководство / Heap / Значения по умолчанию
- 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!' })
