0Pricing
TypeScript Academy · Ders

Güvenli Örüntü Eşleştirme için Ayırt Edilebilir Birleşimler

Tür güvenliği için birleşim üyelerine ortak bir değişmez alan ekleyin

Güvenli Örüntü Eşleştirme için Ayırt Edilebilir Birleşimler, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 3. 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.

Hoş Geldiniz

Ayırt edicili birleşimler, birleşim üyelerine ortak bir değişmez özellik ekler. TypeScript, switch ve if ifadelerinde türü daraltmak için bu ayırt ediciyi kullanır.

Ayırt Edici Özellik

Ayırt edici, her birleşim üyesinde benzersiz bir değişmez türe sahip olan özelliktir. TypeScript, birleşimi değerine göre daraltır.
type Circle = { kind: 'circle'; radius: number };
type Square = { kind: 'square'; side: number };
type Shape = Circle | Square;

if Denetimleriyle Daraltma

Bir if ifadesinde ayırt ediciyi denetleyiniz. TypeScript, türü eşleşen üyeye daraltır.
function area(shape: Shape): number {
  if (shape.kind === 'circle') {
    return Math.PI * shape.radius ** 2;
  }
  return shape.side ** 2; // narrowed to Square
}

switch/case ile Daraltma

switch ifadeleri ayırt edicili birleşimlerle mükemmel şekilde çalışır. Her case, türü belirli bir üyeye daraltır.
function describe(shape: Shape): string {
  switch (shape.kind) {
    case 'circle': return `Circle r=${shape.radius}`;
    case 'square': return `Square s=${shape.side}`;
  }
}

never ile Eksiksizlik

`never` türüne atama yapan bir default durumu ekleyiniz. Yeni bir birleşim üyesi ekler ve onu işlemeyi unutursanız TypeScript bir hata bildirir.
function area(shape: Shape): number {
  switch (shape.kind) {
    case 'circle': return Math.PI * shape.radius ** 2;
    case 'square': return shape.side ** 2;
    default:
      const _exhaustive: never = shape;
      throw new Error('Unhandled shape');
  }
}

Sonuç Türü Kalıbı

Ayırt edicili birleşimler, hata fırlatmadan başarı verisi veya hata döndüren Sonuç kalıbı için idealdir.
type Ok<T> = { ok: true; value: T };
type Err = { ok: false; error: string };
type Result<T> = Ok<T> | Err;

Eylem Türü Kalıbı (Redux Tarzı)

Redux ve benzeri sistemlerde eylemler ayırt edicili birleşimlerdir. `type` alanı ayırt edici görevi görür.
type Action =
  | { type: 'INCREMENT'; amount: number }
  | { type: 'DECREMENT'; amount: number }
  | { type: 'RESET' };

Birden Çok Ayırt Edici Özellik

Ayırt edicinin tek bir özellik olması gerekmez; TypeScript, herhangi bir denetim birleşimine göre daraltma yapabilir.
type AdminUser = { role: 'admin'; permissions: string[] };
type RegularUser = { role: 'user'; credits: number };
type User = AdminUser | RegularUser;

Ayırt Edici Olmayan Birleşimler de Daraltılır

Ayırt edici olmasa bile TypeScript, birleşimleri typeof, instanceof ve özellik denetimlerini kullanarak daraltır.
type StringOrArr = string | string[];
function flatten(val: StringOrArr): string[] {
  return Array.isArray(val) ? val : [val];
}

Ayırt Edicili Birleşimler ve Sınıf Hiyerarşileri

Ayırt edicili birleşimler, çeşitleri modellemek için sınıf kalıtımına işlevsel bir alternatiftir. Daha basittir, serileştirilebilir ve örüntü eşlemeyle iyi çalışır.

Gerçek Dünya: HTTP Yanıt Birleşimi

Farklı API yanıt durumlarını ayırt edicili bir birleşim olarak modelleyiniz.
type ApiState<T> =
  | { status: 'loading' }
  | { status: 'success'; data: T }
  | { status: 'error'; message: string };

Hızlı Kontrol

TypeScript'in doğru şekilde daraltma yapabilmesi için ayırt edicili bir birleşimin her üyesinde ne bulunmalıdır?

Özet

Ayırt edicili birleşimler, ortak bir değişmez özelliği ayırt edici olarak kullanır. switch/case ile daraltma yapınız ve işlenmeyen durumları yakalamak için bir never eksiksizlik denetimi ekleyiniz. Bunlar durum makineleri, eylemler ve API yanıtları için idealdir.

Sıkça Sorulan Sorular

“Güvenli Örüntü Eşleştirme için Ayırt Edilebilir Birleşimler” dersi ücretsiz mi?

Evet — “Güvenli Örüntü Eşleştirme için Ayırt Edilebilir Birleşimler” 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.

“Güvenli Örüntü Eşleştirme için Ayırt Edilebilir Birleşimler” dersinde ne öğreneceğim?

Tür güvenliği için birleşim üyelerine ortak bir değişmez alan 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, 4 dersinin 3. dersidir.

“Güvenli Örüntü Eşleştirme için Ayırt Edilebilir Birleşimler” 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. Birleşim Türleri: A veya B
  2. Kesişim Türleri: A ve B
  3. Güvenli Örüntü Eşleştirme için Ayırt Edilebilir Birleşimler
  4. Birleşim ve Kesişimlerle Uygulamalı Örüntüler
← TypeScript Academy Sayfasına Dön