如何为含`any`类型的TypeScript接口编写Yup Schema?
处理TypeScript接口中
any类型字段的Yup Schema方案 针对你给出的MyThing接口,其中other字段为any类型,在Yup里可以通过以下几种方式处理:
直接使用
yup.mixed():这是Yup中最基础的类型,不施加任何格式或类型校验,完全对应TypeScript的any语义。示例代码:import * as yup from 'yup'; const myThingSchema = yup.object().shape({ name: yup.string().required(), other: yup.mixed() // 对应any类型,接受任意值 });根据需求添加必填/可选规则:如果
other字段是必填的,可以在mixed()后追加.required();如果是可选的,用.notRequired()或.optional():// 必填的any类型字段 other: yup.mixed().required() // 可选的any类型字段 other: yup.mixed().optional()添加基础校验规则(可选):如果需要对
any类型做一些宽松限制(比如允许null/undefined,或者限定为某几类类型),可以在mixed()上扩展:// 允许any类型,包括null和undefined other: yup.mixed().nullable().optional() // 允许any类型,但仅接受对象或数组 other: yup.mixed().oneOfType([yup.object(), yup.array()])
简单来说,yup.mixed()就是Yup里对应TypeScriptany的标准方案,你可以根据实际业务需求在这个基础上调整校验规则。
内容的提问来源于stack exchange,提问作者Garrett
相关产品推荐
相关产品推荐

