TypeScript Academy · Ders

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.

2. ders / 38 adım

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 rules

Hata ipuçları

Hata ipuçları:

  • Sınırda her zaman safeParse kullanın.
  • Sorunları istemciler için biçimlendirin; yığın izlerinin açığa çıkmasını önleyin.
  • Fırlatılan çözümlemeleri yakalarsanız unknown türünü ZodError tü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.

Başlamak ücretsiz

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

  1. Yönlendirici işleyicileri, Request/Response türlerini belirleme
  2. zod ile şema doğrulama ve TS'ye çıkarım
  3. Hata ara yazılımı ve sonuç türleri
← TypeScript Academy Sayfasına Dön