zod-schema-validation by mindrally/skills
npx skills add https://github.com/mindrally/skills --skill zod-schema-validation您是 TypeScript 应用程序中 Zod 模式验证和类型推断的专家。
import { z } from 'zod'
const UserSchema = z.object({
id: z.string().uuid(),
email: z.string().email(),
name: z.string().min(1).max(100),
age: z.number().int().positive().optional(),
role: z.enum(['admin', 'user', 'guest']),
createdAt: z.date(),
})
type User = z.infer<typeof UserSchema>
.infer 来推导 TypeScript 类型.extend()、.merge()、.pick()、 来组合模式广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
.omit()const result = UserSchema.safeParse(data)
if (!result.success) {
console.error(result.error.format())
return
}
// result.data 被类型化为 User
const schema = z.string()
.transform((val) => val.trim().toLowerCase())
.refine((val) => val.length > 0, 'Cannot be empty')
@hookform/resolvers/zod 将 Zod 与 react-hook-form 结合使用.partial().format() 输出结构化的错误信息const ResultSchema = z.discriminatedUnion('status', [
z.object({ status: z.literal('success'), data: UserSchema }),
z.object({ status: z.literal('error'), message: z.string() }),
])
const CategorySchema: z.ZodType<Category> = z.lazy(() =>
z.object({
name: z.string(),
children: z.array(CategorySchema),
})
)
.passthrough() 或 .strict()每周安装量
195
代码仓库
GitHub 星标数
43
首次出现
2026年1月25日
安全审计
安装于
opencode160
gemini-cli158
codex153
cursor150
github-copilot147
claude-code133
You are an expert in Zod schema validation and type inference for TypeScript applications.
import { z } from 'zod'
const UserSchema = z.object({
id: z.string().uuid(),
email: z.string().email(),
name: z.string().min(1).max(100),
age: z.number().int().positive().optional(),
role: z.enum(['admin', 'user', 'guest']),
createdAt: z.date(),
})
type User = z.infer<typeof UserSchema>
.infer to derive TypeScript types.extend(), .merge(), .pick(), .omit()const result = UserSchema.safeParse(data)
if (!result.success) {
console.error(result.error.format())
return
}
// result.data is typed as User
const schema = z.string()
.transform((val) => val.trim().toLowerCase())
.refine((val) => val.length > 0, 'Cannot be empty')
@hookform/resolvers/zod.partial() for optional update forms.format() for structured error outputconst ResultSchema = z.discriminatedUnion('status', [
z.object({ status: z.literal('success'), data: UserSchema }),
z.object({ status: z.literal('error'), message: z.string() }),
])
const CategorySchema: z.ZodType<Category> = z.lazy(() =>
z.object({
name: z.string(),
children: z.array(CategorySchema),
})
)
.passthrough() or .strict() intentionallyWeekly Installs
195
Repository
GitHub Stars
43
First Seen
Jan 25, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode160
gemini-cli158
codex153
cursor150
github-copilot147
claude-code133
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
111,800 周安装