0Pricing
TypeScript Academy · Ders

Koşullu Türler: T extends U ? X : Y

Koşullu türlerle tür düzeyinde if ifadeleri yazın

Koşullu Türler: T extends U ? X : Y, 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

Koşullu türler, tür düzeyinde if ifadelerini ifade etmenizi sağlar. Yardımcı türler oluşturmak için kullanılan TypeScript'in gelişmiş tür sisteminin temel bir parçasıdır.

Temel Sözdizimi

T extends U ? X : Y yazın. T, U'ya atanabiliyorsa sonuç X; aksi takdirde Y olur.
type IsString<T> = T extends string ? true : false;
type A = IsString<string>; // true
type B = IsString<number>; // false

Yerleşik NonNullable

NonNullable, null ve undefined değerlerini T'den kaldıran bir koşullu türle uygulanır.
type NonNullable<T> = T extends null | undefined ? never : T;
type C = NonNullable<string | null>; // string

Genel Türlerle Koşullu Türler

Koşullu türler, en çok genel işlevlerin ve tür takma adlarının içinde kullanışlıdır.
type Flatten<T> = T extends Array<infer I> ? I : T;
type Str = Flatten<string[]>; // string
type Num = Flatten<number>;   // number

İç İçe Koşullu Türler

Koşullu türler daha karmaşık mantıklar için iç içe yerleştirilebilir.
type TypeName<T> =
  T extends string ? 'string' :
  T extends number ? 'number' :
  T extends boolean ? 'boolean' :
  'object';

Birleşimler Üzerinde Dağıtım

T, yalın bir tür parametresi olduğunda koşullu tür, birleşimin üyeleri üzerinde dağıtılır.
type ToArray<T> = T extends any ? T[] : never;
type R = ToArray<string | number>; // string[] | number[]

Dağıtımı Önleme

Dağıtımı önlemek için T'yi bir demet içine sarın.
type NoDistribute<T> = [T] extends [any] ? T[] : never;
type R2 = NoDistribute<string | number>; // (string | number)[]

Filtreleme İçin never Kullanımı

Bir koşullu türden never döndürmek, birleşim üyelerini kaldırır.
type OnlyStrings<T> = T extends string ? T : never;
type S = OnlyStrings<'a' | 'b' | 1 | 2>; // 'a' | 'b'

Eşlemeli Türlerde Koşullu Türler

Nesne özelliklerini seçerek dönüştürmek için eşlemeli türleri ve koşullu türleri birleştirin.
type NullableValues<T> = { [K in keyof T]: T[K] extends string ? null : T[K] };

İşlev Parametrelerinden Tür Çıkarımı

Karmaşık türlerin bölümlerini ayıklamak için koşullu türlerin içinde infer kullanın.
type FirstParam<T> = T extends (first: infer P, ...rest: any[]) => any ? P : never;
type FP = FirstParam<(a: string, b: number) => void>; // string

Yerleşik Koşullu Yardımcı Programlar

ReturnType, Parameters ve InstanceType gibi birçok yerleşik yardımcı program, koşullu türler ve infer kullanılarak oluşturulmuştur.
type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;

Hızlı Kontrol

`type R = string extends object ? 'yes' : 'no'` ifadesinin sonucu nedir?

Özet

Koşullu türler (T extends U ? X : Y), tür düzeyinde mantık kullanılmasını sağlar. Birleşimler üzerinde dağıtılır, ayıklama için infer ile çalışır ve TypeScript'in yerleşik yardımcı türlerinin çoğuna güç verir.

Sıkça Sorulan Sorular

“Koşullu Türler: T extends U ? X : Y” dersi ücretsiz mi?

Evet — “Koşullu Türler: T extends U ? X : Y” 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.

“Koşullu Türler: T extends U ? X : Y” dersinde ne öğreneceğim?

Koşullu türlerle tür düzeyinde if ifadeleri yazı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 3. dersidir.

“Koşullu Türler: T extends U ? X : Y” 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