0Pricing
TypeScript Academy · Ders

Koşullu Türlerde infer'i Anlama

extends yan tümcelerinde infer kullanarak iç türleri çıkarın

Koşullu Türlerde infer'i Anlama, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 1. 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.

Tür Çıkarma Anahtar Sözcüğü Nedir

infer anahtar sözcüğü koşullu türlerin içinde yer alır ve TypeScript'in eşleşen konumdan bir tür değişkeni yakalamasını sağlar; böylece bu değişkeni doğru dalında kullanabilirsiniz.

type GetReturn<T> = T extends (...args: any[]) => infer R ? R : never;

Temel Tür Çıkarma Örneği

Burada infer R kullanarak herhangi bir işlevin dönüş türünü çıkarıyoruz.

type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
type A = ReturnType<() => string>;  // string
type B = ReturnType<() => number[]>; // number[]

Tür Çıkarma Nasıl Çalışır

TypeScript, T yapısını desenle karşılaştırır. Eşleşirse çıkarılan değişken eşleşen bölümü içerir. Eşleşmezse yanlış dal çalıştırılır.

type First<T> = T extends [infer F, ...any[]] ? F : never;
type X = First<[string, number, boolean]>; // string

Genel Tür Parametrelerinden Tür Çıkarma

Promise içinden T türünü çıkarmak gibi, genel bir türün tür bağımsız değişkenini çıkarabilirsiniz.

type Unwrap<T> = T extends Promise<infer U> ? U : T;
type A = Unwrap<Promise<string>>; // string
type B = Unwrap<number>;          // number

Birden Çok Tür Çıkarma Değişkeni

Aynı anda birden fazla konumu yakalamak için tek bir koşullu tür içinde birden çok infer yan tümcesi kullanabilirsiniz.

type Head<T> = T extends [infer H, ...infer Tail] ? H : never;
type Tail<T> = T extends [infer H, ...infer Tail] ? Tail : never;

İşlev Parametrelerinde Tür Çıkarma

Tür çıkarma yalnızca dönüş türlerini değil, işlev parametresi türlerini de yakalayabilir.

type FirstParam<T> = T extends (first: infer P, ...rest: any[]) => any ? P : never;
type A = FirstParam<(x: string, y: number) => void>; // string

Tür Çıkarmayla Dağıtıcı Davranış

T bir birleşim olduğunda, infer içerenler de dâhil olmak üzere koşullu türler her birleşim üyesine ayrı ayrı uygulanır.

type UnwrapAll<T> = T extends Promise<infer U> ? U : T;
type X = UnwrapAll<Promise<string> | Promise<number>>;
// string | number

İç İçe Tür Çıkarma

Bir promise içindeki dizinin değer türünü çıkarmak gibi, bir tür yapısının daha derinlerine ulaşmak için tür çıkarmayı iç içe kullanabilirsiniz.

type UnwrapPromiseArray<T> =
  T extends Promise<infer U>
    ? U extends (infer V)[]
      ? V
      : U
    : T;

Dize Desenleriyle Tür Çıkarma

Şablon değişmez türlerini tür çıkarma ile birleştirerek dize değişmez türlerinden alt dizeleri çıkarabilirsiniz.

type GetDomain<T extends string> =
  T extends `https://${infer Domain}` ? Domain : never;
type D = GetDomain<"https://example.com">; // "example.com"

Yaygın Tuzaklar

Tür çıkarma yalnızca koşullu bir türün extends yan tümcesi içinde çalışır. Başka bir yerde kullanılması derleme hatasına neden olur. Ayrıca yanlış dalındaki tür çıkarma kullanılamaz.

// Error: infer can only appear in extends clauses
type Bad<T> = infer R; // SyntaxError

Özet: Tür Çıkarma

infer anahtar sözcüğü, koşullu bir türdeki yapısal eşleşmeden bir tür parçası yakalamasını sağlar. ReturnType, Parameters ve Awaited gibi yardımcı türleri mümkün kılar.

Hızlı Kontrol

infer anahtar sözcüğü nerede kullanılabilir?

Öğrendikleriniz

infer anahtar sözcüğü, yapısal desenlerden tür parçaları çıkararak tür düzeyinde desen eşleştirmeyi mümkün kılar. TypeScript'teki güçlü yardımcı türlerin ve tür güvenli üst programlamanın temelidir.

Sıkça Sorulan Sorular

“Koşullu Türlerde infer'i Anlama” dersi ücretsiz mi?

Evet — “Koşullu Türlerde infer'i Anlama” 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ürlerde infer'i Anlama” dersinde ne öğreneceğim?

extends yan tümcelerinde infer kullanarak iç türleri çıkarı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 1. dersidir.

“Koşullu Türlerde infer'i Anlama” 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. Koşullu Türlerde infer'i Anlama
  2. ReturnType ve Parameters'ı Sıfırdan Oluşturma
  3. İç İçe Derin Çıkarım Örüntüleri
  4. Uygulamalı infer Kullanım Alanları: Promise'leri Açma
← TypeScript Academy Sayfasına Dön