Geri

TypeScript’te Koşullu Tipleri Anlamak

TypeScript’teki koşullu tipler, bir koşula bağlı olarak iki tipten birini seçmenizi sağlar. Yardımcı tipler oluştururken veya tip dönüşümleri yaparken son derece güçlüdürler.

Şu formatı takip ederler: `A extends B ? C : D`. Koşul doğruysa `C`, değilse `D` sonucu döner.

Temel Koşullu Tip Kontrolü

Bu örnek, bir tip olan `T`'nin `string` tipine atanabilir olup olmadığını kontrol eder. Eğer öyleyse `true`, değilse `false` döner.

type IsString<T> = T extends string ? true : false;
  
  type A = IsString<'hello'>; // true
  type B = IsString<123>;     // false

infer ile Tip Çıkarma

Koşullu tipler, `infer` anahtar sözcüğüyle birlikte kullanılarak yapılardaki tipleri çıkarmak için kullanılabilir. Bu, özellikle dizi veya `Promise` gibi yapılardan tip almak için faydalıdır.

type Flatten<T> = T extends (infer U)[] ? U : T;
  
  type A = Flatten<string[]>; // string
  type B = Flatten<number>;   // number

Nesne Yapısına Göre Koşullu Mantık

Koşullu tiplerle bir nesnenin yapısı incelenebilir ve belirli özelliklerine göre farklı tipler döndürülebilir.

type ConditionalProps<T> = T extends { isActive: true } ? 'Enabled' : 'Disabled';
  
  type A = ConditionalProps<{ isActive: true }>;  // 'Enabled'
  type B = ConditionalProps<{ isActive: false }>; // 'Disabled'

Sonuç

Koşullu tipler, koşullara bağlı olarak dallanabilen daha esnek ve yeniden kullanılabilir tip mantıkları yazmamıza yardımcı olur.

Özellikle generic ve karmaşık veri yapılarıyla çalışırken güçlü yardımcı tipler yazmak için bu yapıyı iyi bilmek şarttır.

Geri