0Pricing
TypeScript Academy · Ders

Şemalardan Tür Çıkarma

Statik türleri doğrudan Zod şemalarından türetin.

Şemalardan Tür Çıkarma, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 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 4 dersten oluşur.

schema Yapıları Tür Bilgisi Taşır

Bir Zod schema, doğruladığı TypeScript türünü bilir. z.infer bu türü çıkarır; böylece shape bilgisini once yazarsınız.

import { z } from "zod";
const userSchema = z.object({ name: z.string(), age: z.number() });
type User = z.infer<typeof userSchema>;
// User is { name: string; age: number }

z.infer Yardımcı Aracı

z.infer<typeof schema>, schema'nın doğruladığı statik türü üretir. typeof kullanımına dikkat edin: schema değerini aktarırsınız.

import { z } from "zod";
const tagSchema = z.array(z.string());
type Tags = z.infer<typeof tagSchema>; // string[]

Tek Doğruluk Kaynağı

Tür çıkarımı olmadan türü ve schema'yı ayrı ayrı korumanız gerekirdi; bunlar zamanla birbirinden sapabilirdi. z.infer ikisini kusursuz biçimde eşzamanlı tutar.

import { z } from "zod";
const schema = z.object({ id: z.number(), email: z.string() });
type Account = z.infer<typeof schema>;
// Change the schema, the type updates automatically.

İç İçe Türleri Çıkarma

Tür çıkarımı, iç içe nesneleri ve dizileri de işler; tek bir schema'dan eksiksiz iç içe TypeScript türünü üretir.

import { z } from "zod";
const postSchema = z.object({
  title: z.string(),
  author: z.object({ name: z.string() }),
  tags: z.array(z.string())
});
type Post = z.infer<typeof postSchema>;
// Post.author.name is string

Çıkarılan Türü Kullanma

Çıkarılan türü, elle yazılmış bir türü kullanacağınız her yerde kullanabilirsiniz: işlev bağımsız değişkenlerinde, değişkenlerde ve dönüş türlerinde.

import { z } from "zod";
const userSchema = z.object({ name: z.string(), age: z.number() });
type User = z.infer<typeof userSchema>;
function greet(u: User): string {
  return "Hi " + u.name;
}

Parse Çıkarılan Türü Döndürür

schema.parse, zaten çıkarılan tür olarak türlendirilmiş bir değer döndürür; böylece sonraki kod tamamen türlendirilmiş olur.

import { z } from "zod";
const userSchema = z.object({ name: z.string(), age: z.number() });
type User = z.infer<typeof userSchema>;
const raw: unknown = { name: "Ada", age: 36 };
const user: User = userSchema.parse(raw); // typed and validated

Türde İsteğe Bağlı ve Boş Değer Alabilen Alanlar

schema değiştiricileri çıkarılan türe aktarılır. Bir .optional() alanı TypeScript'te isteğe bağlı hâle gelir.

import { z } from "zod";
const schema = z.object({
  name: z.string(),
  nickname: z.string().optional()
});
type P = z.infer<typeof schema>;
// P is { name: string; nickname?: string }

Nesne Dizilerinden Tür Çıkarma

z.array ile z.object'i birleştirdiğinizde çıkarılan tür, nesne türlerinden oluşan bir dizidir.

import { z } from "zod";
const usersSchema = z.array(z.object({ id: z.number() }));
type Users = z.infer<typeof usersSchema>;
// Users is { id: number }[]

typeof Neden Gerekli?

schema bir değer olduğu için onu z.infer'e aktarmadan önce türüne typeof schema ile başvurursunuz.

import { z } from "zod";
const s = z.string();
type S = z.infer<typeof s>; // string
// z.infer<s> would be wrong: s is a value, not a type.

Modül Sınırları Arasında Tür Çıkarımı

Aynı shape bilgisini tutarlı biçimde doğrulayıp kullanabilmeleri için hem schema'yı hem de çıkarılan türünü dışa aktarın.

import { z } from "zod";
export const userSchema = z.object({ name: z.string() });
export type User = z.infer<typeof userSchema>;
// Consumers import both the runtime schema and the type.

Tek Tanım, İki Dünya

schema çalışma zamanı doğrulamasını, z.infer ise derleme zamanı türlendirmesini sağlar. Tek bir bildirim her ikisini de destekler ve yinelemeyi ortadan kaldırır.

import { z } from "zod";
const configSchema = z.object({ port: z.number(), host: z.string() });
type Config = z.infer<typeof configSchema>;
// Validate at runtime, type at compile time, no drift.

Hızlı Kontrol: Tür Çıkarma

schema'ların türlerini çıkarma konusundaki anlayışınızı sınayın.

Özet: schema'lardan Tür Çıkarma

z.infer<typeof schema> kullanarak bir Zod schema'sından TypeScript türü türetmeyi; iç içe, isteğe bağlı ve dizi shape'leri de dâhil olmak üzere doğrulama ve türler için tek bir doğruluk kaynağı elde etmeyi öğrendiniz.

import { z } from "zod";
const userSchema = z.object({ name: z.string(), age: z.number() });
type User = z.infer<typeof userSchema>;
// User stays in sync with the schema automatically.

Sıkça Sorulan Sorular

“Şemalardan Tür Çıkarma” dersi ücretsiz mi?

Evet — “Şemalardan Tür Çıkarma” 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.

“Şemalardan Tür Çıkarma” dersinde ne öğreneceğim?

Statik türleri doğrudan Zod şemalarından türetin. 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 2. dersidir.

“Şemalardan Tür Çıkarma” 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