Zod
TypeScript integráció
z.infer használata, típusok exportálása, leszármaztatott schema-k és típusszűkítés safeParse után.
z.infer – típus kinyerése sémából
import { z } from "zod"
const userSchema = z.object({
id: z.string().uuid(),
name: z.string().min(1),
age: z.number().int().positive(),
role: z.enum(["admin", "user"]),
address: z
.object({
city: z.string(),
country: z.string(),
})
.optional(),
})
type User = z.infer<typeof userSchema>Sémák és típusok exportálása
import { z } from "zod"
export const userSchema = z.object({
id: z.string().uuid(),
name: z.string(),
email: z.string().email(),
})
export type User = z.infer<typeof userSchema>
export const createUserSchema = userSchema.omit({ id: true })
export type CreateUserInput = z.infer<typeof createUserSchema>
export const updateUserSchema = createUserSchema.partial()
export type UpdateUserInput = z.infer<typeof updateUserSchema>Típusszűkítés validáció után
function processUser(data: unknown) {
const result = userSchema.safeParse(data)
if (!result.success) return null
return result.data.name.toUpperCase()
}