提问人:Mehmet Emre Ast 提问时间:11/8/2023 更新时间:11/8/2023 访问量:36
TypeScript 在使用 .required() 时推断 Yup 架构的可选字段
TypeScript infers optional fields for Yup schema when using .required()
问:
我正在通过构建 yup 模式来验证我的创建活动表单。此表单有一个名为 sellers 的字段,该字段将是类型为 的对象数组。Typescript 使用可选成员推断 sellers 对象的类型。这会导致我的表单出现类型错误。{id: number; label: string}
这是我的 Yup 架构的最小示例:
const validationSchema = yup.object().shape({
sellers: yup
.array()
.of(
yup.object().shape({
id: yup.number().required().defined(),
label: yup.string().defined().required(),
}),
)
.required(),
});
validationSchema 的预期 TypeScript 类型:
{
sellers: {
id: number;
label: string;
}[];
}
推断的 validationSchema 的实际 TypeScript 类型:
{
sellers: {
id?: number | undefined;
label?: string | undefined;
}[];
}
我正在使用 TypeScript 版本 5.2.2 和 Yup 版本 1.3.2,由于 .required() 和 .defined() 方法,我希望 TypeScript 能够根据需要识别 id 和标签,但它没有发生。有没有办法强制 TypeScript 在其类型推断中遵守 Yup 约束?
答: 暂无答案
评论