社交媒体发帖表单:Zod的File数组TS验证转JS实现方法
将Zod的TypeScript验证代码转为JavaScript实现
在JavaScript中使用Zod时,不需要TypeScript的泛型语法(即<File[]>部分),直接通过z.custom()配合自定义校验逻辑就能实现相同的验证效果:
const postSchema = z.object({ file: z.custom((value) => { // 验证输入是数组且每一项都是File类型 return Array.isArray(value) && value.every(item => item instanceof File); }, { // 可选:自定义验证失败的提示文本 message: "请上传File类型的数组" }) });
补充说明
- 自定义校验函数会严格检查输入是否符合File数组的要求,和原TypeScript代码的校验目标完全一致。
- 验证时可以用
postSchema.parse(formData)直接抛出错误,或者用postSchema.safeParse(formData)获取包含成功/失败状态的结果对象,方便后续处理。
内容的提问来源于stack exchange,提问作者Puneet Sharma
相关产品推荐
相关产品推荐

