使用 Zod 验证枚举数组

问题描述 投票:0回答:1

枚举示例:

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

如何使用 Zod 验证这些类型的枚举数组?

z.array(Day)
不起作用

z.array(Day.MONDAY | Day.TUESDAY ...)
不起作用

javascript typescript validation zod
1个回答
0
投票

来自文档: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
© www.soinside.com 2019 - 2024. All rights reserved.