zod ile şema doğrulama ve TS'ye çıkarım
İstekleri zod ile doğrulayın; şemalardan TypeScript türlerini çıkarın; güvenli ara yazılım ve hata işleme ekleyin.
zod ile şema doğrulama ve TS'ye çıkarım, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 3 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 3 dersten oluşur.
Giriş
Hedef: Gelen verileri zod ile doğrulayın ve z.infer aracılığıyla TypeScript türlerini senkronize tutun. Verileri güvenli şekilde ayrıştıracak, yararlı hatalar gönderecek ve doğrulamayı ara yazılıma bağlayacaksınız.
- Şemaları bir kez tanımlama
- TS türlerini çıkarma
- safeParse ve 400 hataları
Şema ve tür çıkarımı
zod ile bir kez modelleyin. Türetilen type User = z.infer<typeof userSchema>, doğrulamayı birebir yansıtır.
import { z } from "zod"
export const userSchema = z.object({
id: z.string().regex(/^u_[a-z0-9]+$/),
name: z.string().min(1),
age: z.number().int().nonnegative().optional()
})
export type User = z.infer<typeof userSchema>
// Reuse `User` across handlers, services, and testsİşleyicide safeParse
Özel durumlardan kaçınmak için safeParse kullanın; biçimlendirilmiş sorunlarla birlikte 400 döndürün. Yanıt türü hem başarı hem de hata şekillerini yansıtır.
import { Request, Response } from "express"
import { userSchema, User } from "./schema"
export function createUser(req: Request<{}, User, unknown>, res: Response<User | { error: string; issues?: unknown }>) {
const parsed = userSchema.safeParse(req.body)
if (!parsed.success) {
return res.status(400).json({ error: "Invalid body", issues: parsed.error.format() })
}
const user = parsed.data
return res.status(201).json(user)
}Ara yazılım yardımcısı
Yeniden kullanılabilir bir ara yazılım oluşturun. Gövdeyi ayrıştırır ve türü belirlenmiş veriyi ekler veya ayrıntılarla birlikte 400 döndürür.
import { z } from "zod"
import { Request, Response, NextFunction } from "express"
export function validateBody<T extends z.ZodTypeAny>(schema: T) {
return (req: Request, res: Response, next: NextFunction) => {
const r = schema.safeParse(req.body)
if (!r.success) {
return res.status(400).json({ error: "Invalid body", issues: r.error.format() })
}
req.body = r.data
next()
}
}Zorunlu dönüştürme ve iyileştirme
Metin biçimindeki sayıları kabul etmek için z.coerce, bilinen değerler için z.enum ve alanlar arası kurallar için .refine kullanın.
import { z } from "zod"
const signupSchema = z.object({
email: z.string().email(),
age: z.coerce.number().int().gte(13),
role: z.enum(["user", "admin"]).default("user")
}).refine(v => v.role !== "admin" || v.age >= 18, { message: "admin must be adult" })
export type Signup = z.infer<typeof signupSchema>
// Coercion allows numbers in strings; refine adds cross-field rulesHata ipuçları
Hata ipuçları:
- Sınırda her zaman
safeParsekullanın. - Sorunları istemciler için biçimlendirin; yığın izlerinin açığa çıkmasını önleyin.
- Fırlatılan çözümlemeleri yakalarsanız
unknowntürünüZodErrortürüne daraltın.
zod çıkarımı kontrolü
Hızlı kontrol: TS türlerini zod şemalarıyla nasıl eşzamanlı tutarsınız?
Özet
Özet: Tek bir şema tanımlayın, TS türünü çıkarın, safeParse ile doğrulayın ve tutarlı 400 hataları için bunu ara yazılıma bağlayın.
Yapay zeka eğitmeniyle TypeScript öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 101
- Dersler
- 352
Sıkça Sorulan Sorular
“zod ile şema doğrulama ve TS'ye çıkarım” dersi ücretsiz mi?
Evet — “zod ile şema doğrulama ve TS'ye çıkarım” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 3 dersten oluşur.
“zod ile şema doğrulama ve TS'ye çıkarım” dersinde ne öğreneceğim?
İstekleri zod ile doğrulayın; şemalardan TypeScript türlerini çıkarın; güvenli ara yazılım ve hata işleme ekleyin. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 2. dersidir.
“zod ile şema doğrulama ve TS'ye çıkarım” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Yönlendirici işleyicileri, Request/Response türlerini belirleme
- zod ile şema doğrulama ve TS'ye çıkarım
- Hata ara yazılımı ve sonuç türleri