JSON'dan Zod Şemasına
Çoklu örnek çıkarımı, opsiyonel vs nullable tespiti, string format yardımcıları (email / url / uuid / datetime / ip), string + sayı kısıtları, z.coerce, sıralı anahtarlar, isimli import stili, v3 + v4-rc çıktı ve strict API'ler vs lenient form data için ön ayarlar.
JSON girdisi
Bir payload yapıştır. Çoklu örnek için sekme ekle — herhangi bir örnekte eksik alanlar opsiyonel olur.
Zod şeması
Yazdıkça güncellenir. İç içe objeler isimli alt şemalara çıkarılır.
import { z } from "zod"; export const schema = z.object({ id: z.string().uuid(), email: z.string().email(), username: z.string(), passwordHash: z.string(), age: z.number(), acceptedTerms: z.boolean(), newsletter: z.boolean(), createdAt: z.string().datetime(),}); export type Schema = z.infer<typeof schema>; Seçenekler
Üretilen şemayı şekillendir — runtime kontroller, kod stili, import biçimi.
Çıktı
Kök export adı
export const <ad> = z.object({...}) olarak çıkar.
Çıkarsanan tipi de export et
export type <Ad> = z.infer<typeof ad> ekler.
Zod sürümü
Import biçimi
Algılama
String formatlarını algıla
Otomatik .email() / .url() / .uuid() / .datetime() / .ip() uygular.
String uzunluğunu algıla
Örnek uzunluklarına göre .min()/.max() ekler.
Sayı aralığını algıla
Örneklerden .int(), .positive(), .nonnegative(), .min()/.max() üretir.
Primitifleri coerce et
z.coerce.* kullanır — query string ve FormData için faydalı.
Kod stili
Girinti
Tırnak
Anahtarları alfabetik sırala
Üretilen şemada object anahtarlarını A→Z sıralar.
Şemayı test et
Üretilen kodu Zod playground'a yapıştırarak bir değeri bundling yapmadan baştan sona doğrulayabilirsin.