Onur Oduncu
Ana SayfaHakkımdaProjelerBlogTeknolojilerİletişim
Onur Oduncu

Uzun ömürlü sistemler tasarlayan ve bilgisini paylaşan bir teknoloji portfolyosu.

© 2026 Onur Oduncu. Tüm hakları saklıdır.

Blog'a Dön

TypeScript'te Tip Güvenliğini Zod ile Çalışma Zamanına Taşımak

TypeScript'in derleme zamanı garantileri çalışma zamanında kaybolur. Zod ile API sınırlarında tip güvenliğini nasıl koruduğumu anlatıyorum.

14 Temmuz 20260 görüntülenme1 dk okuma
~/blog/typescript-zod-calisma-zamani-tip-guvenligi

TypeScript'te Tip Güvenliğini Zod ile Çalışma Zamanına Taşımak

TypeScript, yalnızca derleme zamanında tip kontrolü yapar. Bir API'den gelen JSON verisi, harici bir kullanıcı formu ya da ortam değişkenleri gibi çalışma zamanı verileri için bu güvence geçerli değildir. Zod, bu boşluğu dolduruyor.

Sorun: "as" ile Sahte Güven

const data = (await res.json()) as User;

Bu satır TypeScript'e "bana güven" demekten başka bir şey yapmaz. API beklenmedik bir şekil döndürürse, hata çok daha sonra, tamamen alakasız bir noktada ortaya çıkar.

Zod ile Şema Tanımlamak

const UserSchema = z.object({
  id: z.string(),
  email: z.string().email(),
  role: z.enum(["admin", "user"]),
});

const data = UserSchema.parse(await res.json());

Bu yaklaşım hem çalışma zamanında doğrulama yapar hem de z.infer<typeof UserSchema> ile otomatik olarak TypeScript tipini türetir. Şema ve tip her zaman senkronize kalır.

Form Doğrulamada Kullanımı

react-hook-form ile birlikte Zod resolver kullanmak, form doğrulama mantığını backend şemasıyla aynı kaynaktan türetmeyi mümkün kılıyor. Bu da frontend ve backend doğrulama kurallarının birbirinden sapmasını engelliyor.

Sonuç

Zod, TypeScript'in statik garantilerini sistem sınırlarına (API, form, ortam değişkenleri) taşıyarak, "çalışıyor gibi görünen ama çalışma zamanında patlayan" hataların önüne geçiyor.