我有以下模式。
const schema = z.object({
name: z.string().min(1)
})
在zod中有什么方法可以获得存储在min中的值吗?
const minValue = schema.shape...? // should be 1
是的,稍微翻了一下,有一个隐藏的_def
字段,您可能需要//@ts-ignore
:
const minValue = schema.shape.name._def.checks[0].value;
如果你有不止一张支票,你可以找到你想要的:
const minValue = schema.shape.name._def.checks.find(({ kind }) => kind === "min").value;
请注意,如果未发现此类检查,则find
将返回undefined
。
但我可以让你对另一种选择感兴趣吗?
const nameMinLength = 1;
const schema = z.object({
name: z.string().min(nameMinLength)
});
// now you already have it
console.log(nameMinLength);