如何在导出 Zod 对象后保留 .email() 和 .min(6) 等验证规则的类型提示,以便在其他项目中使用时保留这些验证详细信息?
例如,我在后端代码中定义了一个zod模式:
export const signInSchema = z.object({
email: z.string().email(),
password: z.string().min(6)
})
在前端项目中导入时, .email(),.min(6) 验证规则信息将丢失。 所以前端用户不知道它是什么样子的。
您可以导出创建架构以保留这些信息的函数,而不是导出架构:
export const createSignInSchema = () => z.object({
email: z.string().email(),
password: z.string().min(6)
})
// usage
const signInSchema = createSignInSchema()