You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为含`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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:05:17