Проверка массива перечислений с помощью Zod

Пример перечисления:

enum Day{
  MONDAY = 1,
  TUESDAY = 2,
  ...
}

как мне проверить с помощью Zod массив перечислений такого типа?

z.array(Day) не работает

z.array(Day.MONDAY | Day.TUESDAY ...) не работает

🤔 А знаете ли вы, что...
С JavaScript можно создавать расширения для различных платформ, таких как Adobe Acrobat и Microsoft Office.


67
1

Ответ:

Решено

Из документации: https://zod.dev/?id=native-enums

enum Fruits {
  Apple,
  Banana,
}

const FruitEnum = z.nativeEnum(Fruits);
type FruitEnum = z.infer<typeof FruitEnum>; // Fruits

FruitEnum.parse(Fruits.Apple); // passes
FruitEnum.parse(Fruits.Banana); // passes
FruitEnum.parse(0); // passes
FruitEnum.parse(1); // passes
FruitEnum.parse(3); // fails