Otomatik TypeScript tip çıkarımı ile çalışma zamanı şema doğrulama.
import { z } from class=class="text-emerald-400">"text-emerald-400">'zod'
const UserSchema = z.object({
id: z.number(),
name: z.string().min(2).max(50),
email: z.string().email(),
age: z.number().int().min(0).max(150).optional(),
role: z.enum([class=class="text-emerald-400">"text-emerald-400">'admin', class=class="text-emerald-400">"text-emerald-400">'editor', class=class="text-emerald-400">"text-emerald-400">'viewer']),
metadata: z.record(z.string()).optional(),
})
class=class="text-emerald-400">"text-gray">// Infer the TypeScript type from the schema
type User = z.infer<typeof UserSchema>
class=class="text-emerald-400">"text-gray">// Validate unknown data
function parseUser(data: unknown): User {
return UserSchema.parse(data)
}
class=class="text-emerald-400">"text-gray">// Safe parse — returns result instead of throwing
function safeParseUser(data: unknown) {
const result = UserSchema.safeParse(data)
if (!result.success) {
console.error(result.error.flatten())
return null
}
return result.data
}Şemaları bir kez tanımlayın ve hem doğrulama hem de tipler elde edin: type User = z.infer<typeof UserSchema>. Geçersiz veride hata fırlatmak için parse(), API'ler ve formlarda düzgün hata yönetimi için safeParse() kullanın.
Fikrinizi nasıl hayata geçirebileceğimizi konuşalım. İlk konseptten üretime hazır ürüne kadar — yanınızdayız.