0Pricing
TypeScript Academy · Ders

Dağıtıcı Koşullu Türler

Koşulların birleşim üyelerine nasıl dağıtıldığını anlayın

Dağıtıcı Koşullu Türler, 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.

Hoş Geldiniz

Dağıtımlı koşullu türler, bir koşullu türü birleşimin her üyesine ayrı ayrı uygular. Bu güçlü davranış, birleşim dönüştürmeyi ve filtrelemeyi mümkün kılar.

Dağıtım Nedir

Bir koşullu türde yalın bir genel T bulunduğunda ve T bir birleşim olduğunda TypeScript, koşulu birleşimin her üyesine ayrı ayrı uygular.
type Wrap<T> = T extends any ? { value: T } : never;
type R = Wrap<string | number>;
// = { value: string } | { value: number }

Temel Koşul

Dağıtım yalnızca T'nin yalın, yani sarılmamış, bir genel tür parametresi olması durumunda gerçekleşir. T'yi bir demet içine sarmak dağıtımı önler.
type Bare<T> = T extends string ? 'yes' : 'no';
type Wrapped<T> = [T] extends [string] ? 'yes' : 'no';
type B = Bare<'a' | 'b'>; // 'yes' | 'yes' = 'yes'
type W = Wrapped<'a' | 'b'>; // 'no' — treated as a tuple

never ile Birleşimleri Filtreleme

Yanlış dalından never döndürmek, birleşim üyelerini filtreler.
type StringsOnly<T> = T extends string ? T : never;
type S = StringsOnly<string | number | boolean>; // string

Yerleşik Extract

Extract, U'ya atanabilen üyeleri koruyan dağıtımlı bir koşullu türle uygulanır.
type Extract<T, U> = T extends U ? T : never;
type E = Extract<string | number | boolean, string | number>; // string | number

Yerleşik Exclude

Exclude, U'ya atanabilen birleşim üyelerini kaldırır.
type Exclude<T, U> = T extends U ? never : T;
type Ex = Exclude<string | number | boolean, boolean>; // string | number

ToArray Dağıtımı

Dağıtım yoluyla ToArray'ı birleşimin her üyesine ayrı ayrı uygulayın.
type ToArray<T> = T extends any ? T[] : never;
type R = ToArray<string | number>; // string[] | number[]

Dağıtımı Önleme Kullanım Senaryosu

Bazen birleşimin tamamını tek bir tür bağımsız değişkeni olarak ele almak ve üzerinde dağıtım yapmamak istersiniz.
type IsUnion<T> = [T] extends [T] ? [T] extends [Exclude<T, T>] ? false : true : false;

Dağıtımlı Eşlemeli Türler

Seçili özellikleri dönüştürmek için dağıtımlı koşullu türleri eşlemeli türlerle birleştirin.
type PickByValue<T, V> = {
  [K in keyof T as T[K] extends V ? K : never]: T[K]
};

ReturnType İçinde Dağıtımlı Koşullu Tür

Dağıtımlı davranış, T bir işlev türleri birleşimi olduğunda ReturnType özelliğinin doğru çalışmasını sağlar.
type Fn = (() => string) | (() => number);
type R = ReturnType<Fn>; // string | number

Ertelenmiş ve Gerçekleştirilen Dağıtım

TypeScript, serbest tür parametreleri içeren koşullu türleri çözümlenene kadar erteler; yani bunları değerlendirmez. Buna tembel değerlendirme denir.

Hızlı Kontrol

T, yalın bir genel tür olmadığında `type R = (string | number) extends string ? 'yes' : 'no'` ifadesinin sonucu nedir?

Özet

Dağıtımlı koşullu türler, T yalın bir genel parametre olduğunda birleşimin her üyesine ayrı ayrı uygulanır. Bu özellik Extract, Exclude ve özel birleşim filtrelemenin temelini oluşturur. Dağıtımı önlemek için türü bir demet içine sarın.

Sıkça Sorulan Sorular

“Dağıtıcı Koşullu Türler” dersi ücretsiz mi?

Evet — “Dağıtıcı Koşullu Türler” 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.

“Dağıtıcı Koşullu Türler” dersinde ne öğreneceğim?

Koşulların birleşim üyelerine nasıl dağıtıldığını anlayın 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.

“Dağıtıcı Koşullu Türler” 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. keyof ve Dizine Göre Erişim Türleri
  2. Genel Kısıtlamalar: Tür Parametrelerini Daraltma
  3. Koşullu Türler: T extends U ? X : Y
  4. Dağıtıcı Koşullu Türler
← TypeScript Academy Sayfasına Dön