导出 Zod 对象后如何保留 .email() 和 .min(6) 等验证规则的类型提示?

问题描述 投票:0回答:1

如何在导出 Zod 对象后保留 .email() 和 .min(6) 等验证规则的类型提示,以便在其他项目中使用时保留这些验证详细信息?

例如,我在后端代码中定义了一个zod模式:

export const signInSchema = z.object({
    email: z.string().email(),
    password: z.string().min(6)
})

在前端项目中导入时, .email(),.min(6) 验证规则信息将丢失。 所以前端用户不知道它是什么样子的。

javascript typescript zod
1个回答
0
投票

您可以导出创建架构以保留这些信息的函数,而不是导出架构:

export const createSignInSchema = () => z.object({
   email: z.string().email(),
   password: z.string().min(6)
})

// usage
const signInSchema = createSignInSchema()
© www.soinside.com 2019 - 2024. All rights reserved.