joi enum typescript Валидация значения - из перечислимого типа, один из нескольких енамов

Пусть у нас есть некий enum ColumnType и мы хотим ограничить его знчениями некое поле field, тогда вариант :

export const valuesByFieldDtoSchema = joi.object({
 field: joi.string().allow(ColumnType).required(),

-- работать не будет.

Рабочим решением является вариант:

export const valuesByFieldDtoSchema = joi.object({
  field: joi
    .string()
    .valid(...Object.values(ColumnType))
    .required(),

Выбор из нескольких enum-ов

Если в качестве значения нам подходят варианты не из одного энама, а сразу из нескольких, не проблема, перечислим их в valid (принимает произвольное множество аргументов):

export const valuesByFieldDtoSchema = joi.object({
  field: joi
    .string()
    .valid(...Object.values(ColumnType), ...Object.values(ColumnTypeSecond))
    .required(),

Key Words for FKN + antitotal forum (CS VSU):