0Pricing
TypeScript Academy · Ders

Şemaları Birleştirme ve İyileştirme

refine, transform ve birleşimlerle karmaşık şemalar oluşturun.

Şemaları Birleştirme ve İyileştirme, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 4. 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 4 dersten oluşur.

schema Yapıları Birleştirilebilir

Zod schema yapıları, birleştirilebilir yapı taşlarıdır. Karmaşık doğrulama kurallarını modellemek için refine, transform, extend ve birleştirme işlemlerini kullanabilirsiniz.

import { z } from "zod";
const base = z.object({ name: z.string() });
// We will add rules and combine schemas from here.

refine ile Özel Kurallar

.refine, Zod'un yerleşik bir kural sunmadığı durumlar için ileti içeren özel bir doğrulama koşulu ekler.

import { z } from "zod";
const password = z.string().refine(
  (s) => s.length >= 8,
  { message: "Must be at least 8 characters" }
);
// password.parse("short") throws with that message.

Alanlar Arasında refine Uygulama

Alanlar arasındaki ilişkileri, örneğin password doğrulamasının eşleşmesini denetlemek için bir nesneye .refine uygulayın.

import { z } from "zod";
const form = z.object({
  password: z.string(),
  confirm: z.string()
}).refine((d) => d.password === d.confirm, {
  message: "Passwords must match"
});
// Validates both fields together.

Değerleri Dönüştürme

.transform, doğrulama başarıyla tamamlandıktan sonra çalışarak doğrulanmış bir değeri başka bir shape'e dönüştürür.

import { z } from "zod";
const trimmed = z.string().transform((s) => s.trim());
const result = trimmed.parse("  hi  "); // "hi"

İsteğe Bağlı Alanlar

.optional(), bir alanın eksik olmasına izin verir; bu durum hem doğrulamaya hem de çıkarılan türe yansır.

import { z } from "zod";
const schema = z.object({
  name: z.string(),
  bio: z.string().optional()
});
// bio may be omitted.

default Değerleri

.default, girdi eksik olduğunda bir değer sağlar; böylece ayrıştırılan sonuçta alan her zaman doldurulmuş olur.

import { z } from "zod";
const schema = z.object({
  retries: z.number().default(3)
});
const r = schema.parse({}); // { retries: 3 }

union schema Yapıları

z.union, birkaç schema'dan herhangi biriyle eşleşen bir değeri kabul eder; bu, Zod'daki TypeScript union karşılığıdır.

import { z } from "zod";
const id = z.union([z.string(), z.number()]);
// id.parse("abc") and id.parse(123) both succeed.

Zod'da Ayrımlı union Yapıları

z.discriminatedUnion, ayırt edici bir alana göre seçim yaparak etiketli union yapılarını verimli biçimde doğrular.

import { z } from "zod";
const shape = z.discriminatedUnion("kind", [
  z.object({ kind: z.literal("circle"), radius: z.number() }),
  z.object({ kind: z.literal("square"), side: z.number() })
]);
// Picks the right member by kind.

extend ile Birleştirme

.extend, mevcut bir nesne schema'sına alanlar ekler; böylece küçük schema'lardan daha büyük schema'lar oluşturabilirsiniz.

import { z } from "zod";
const base = z.object({ id: z.number() });
const user = base.extend({ name: z.string() });
// user validates { id: number; name: string }

Nesne schema'larını Birleştirme

İki nesne schema'sını .merge ile birleştirerek tüm alanlarını tek bir schema'da toplayabilirsiniz.

import { z } from "zod";
const a = z.object({ x: z.number() });
const b = z.object({ y: z.string() });
const combined = a.merge(b);
// combined validates { x: number; y: string }

Hepsini Birbirine Zincirleme

İyileştirmeler, dönüştürmeler, varsayılanlar ve genişletmeler akıcı biçimde zincirlenerek zengin doğrulamayı tek ve okunabilir bir schema'da ifade eder.

import { z } from "zod";
const signup = z.object({
  email: z.string().refine(s => s.includes("@"), { message: "Invalid email" }),
  age: z.number().default(18)
}).extend({
  newsletter: z.boolean().optional()
});
// One schema, many rules.

Hızlı Kontrol: schema'ları Birleştirme

schema'ları birleştirme ve iyileştirme konusundaki anlayışınızı sınayın.

Özet: schema'ları Birleştirme ve İyileştirme

.refine ile özel kurallar eklemeyi, .transform ile değerleri yeniden şekillendirmeyi, eksik verileri .optional ve .default ile ele almayı, alternatifleri z.union ile birleştirmeyi ve schema'ları .extend ile .merge kullanarak büyütmeyi öğrendiniz.

import { z } from "zod";
const schema = z.object({ name: z.string() })
  .extend({ age: z.number().default(0) })
  .refine(d => d.name.length > 0, { message: "Name required" });
// Composed validation in one place.

Sıkça Sorulan Sorular

“Şemaları Birleştirme ve İyileştirme” dersi ücretsiz mi?

Evet — “Şemaları Birleştirme ve İyileştirme” 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 4 dersten oluşur.

“Şemaları Birleştirme ve İyileştirme” dersinde ne öğreneceğim?

refine, transform ve birleşimlerle karmaşık şemalar oluşturun. 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, 4 dersinin 4. dersidir.

“Şemaları Birleştirme ve İyileştirme” 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. Zod Şema Temelleri
  2. Şemalardan Tür Çıkarma
  3. parse ve safeParse
  4. Şemaları Birleştirme ve İyileştirme
← TypeScript Academy Sayfasına Dön