gpt4 book ai didi

typescript - 验证 yup 中的 Enum 数组

转载 作者:行者123 更新时间:2023-12-03 08:14:54 34 4
gpt4 key购买 nike

我需要验证 yup 中的枚举数组。

我正在使用 typescript ,因此我必须在验证期间使用枚举的确切类型。虽然使用字符串数组似乎可行,但我想验证确切的枚举数组而不是字符串。有办法实现吗?

我还添加了一个工作代码沙箱 https://codesandbox.io/s/clever-edison-3vqp1

这是我打算做的事情的片段

import { object, array } from "yup";

enum DayEnum {
Sunday = "Sunday",
Monday = "Monday",
Tuesday = "Tuesday",
Wednesday = "Wednesday",
Thursday = "Thursday",
Friday = "Friday",
Saturday = "Saturday"
}

const daysSchema = object({
// days_of_week: array(string()),
days_of_week: array(DayEnum)
});

const main = async () => {
console.log(
await daysSchema.isValid({
days_of_week: [DayEnum.Sunday, DayEnum.Saturday]
})
);
};

main();

最佳答案

由于以下评论,我能够解决这个问题:https://github.com/jquense/yup/issues/1497#issue-1034140602

解决方案如下所示

const daysSchema = object({
days_of_week: array(
mixed<DayEnum>().oneOf(Object.values(DayEnum)).required()
).ensure()
});

关于typescript - 验证 yup 中的 Enum 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69749209/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com