CodeBlanks Logo Icon CodeBlanks

Union ile kombinasyon

Union'larla dize kümeleri üretmeyi öğrenirsin.

Union ile kombinasyon

Bir template literal type içine union yerleştirildiğinde, TypeScript tüm kombinasyonları üretir. Bu, cartesian product (kartezyen çarpım) gibi çalışır. Her union üyesi şablona ayrı ayrı yerleştirilir ve sonuç yine bir union olur.

type Yan = "evet" | "hayır";
type Cumle = `Sonuç: ${Yan}`;
// "Sonuç: evet" | "Sonuç: hayır"

İki union ile cartesian product

İki union'ı aynı şablona koyarsan, her birinin tüm kombinasyonları üretilir. Örneğin renk ve boyut union'ları ${Renk}_${Boyut} şablonunda birleşince her renk her boyutla eşleşir. Bu, sabit seçenekli ad üretmek için pratik bir yöntemdir.

type Renk = "kırmızı" | "mavi";
type Boyut = "S" | "M";
type Urun = `${Renk}_${Boyut}`;
// 4 kombinasyon

Uygulama Renk ve Boyut kombinasyonu

Renk adında union tanımla: "kırmızı" | "mavi". Boyut adında union tanımla: "S" | "M". Urun adında template literal type tanımla: `${Renk}_${Boyut}`. urun değişkeni Urun türünde ve değeri "kırmızı_S" olsun. urun değerini console.log ile yazdır.

Başlangıç kodu

index.ts
// Renk adinda union tanimla
// Boyut adinda union tanimla
// Urun adinda template literal ile kombinasyon turu tanimla
// urun degiskenini tanimla ve deger ata
// urun yazdir

Örnek çözüm

index.ts
type Renk = "kırmızı" | "mavi";
type Boyut = "S" | "M";
type Urun = `${Renk}_${Boyut}`;
const urun: Urun = "kırmızı_S";
console.log(urun);

Beklenen çıktı

kırmızı_S

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 type Yan = "evet" | "hayır" ve type Cumle = `Sonuç: ${Yan}` ise Cumle ne olur?

  • "Sonuç: evet" | "Sonuç: hayır" Doğru cevap
  • "Sonuç: evet"
  • ("Sonuç: evet" | "Sonuç: hayır")[]
  • string

Açıklama: Union template literal içine konunca her üye için ayrı bir literal üretilir; sonuç tüm bu literal'ların union'ı olur.

2 Union operatörü

Soru
type Yan = "evet" ____ "hayır";
type Cumle = `Sonuç: ${Yan}`;
Cevap
type Yan = "evet" | "hayır";
type Cumle = `Sonuç: ${Yan}`;

Açıklama: Bir union tür üyelerini | operatörü ile ayırırsın; her üye ayrı bir seçenektir.

3 Union kombinasyon kavramları

Kavram Anlamı
| Union operatörü
cartesian product Tüm kombinasyonlar
${Yan} Union şablona yerleşir
"evet" | "hayır" İki üyeli union

İleri seviye bölümündeki tüm dersler