能否对指定Zod对象c进行解包,以获取目标结构的对象?
解答
当然可以,你要的结构直接通过Zod对象的shape属性就能拿到。
你用z.object()创建的c是一个ZodObject实例,它会把你定义的结构存储在shape属性里。直接访问这个属性就能得到目标对象:
const z = require("zod"); const c = z.object({a: z.object({b: z.string()})}); // 解包获取目标结构 const unpacked = c.shape; // unpacked 就是 {a: z.object({b: z.string()})}
如果是在TypeScript场景下需要类型层面的解包,可以用z.infer<typeof c>得到对应的类型,但你这里问的是运行时的对象结构,shape属性完全能满足需求。
内容的提问来源于stack exchange,提问作者Numm3n
相关产品推荐
相关产品推荐

