如何在zod中获取min()、max()内的值



我有以下模式。

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);

最新更新