CodeBlanks Logo Icon CodeBlanks

Özet - İleri generic'ler

Variadic tuple'larla bir concat yardımcısı yazarsın.

Özet - İleri generic'ler

Bu grupta ileri generic konularını öğrendin: variadic tuple'lar değişken uzunluklu tür güvenli tuple'lar sağlar; tuple inference generic fonksiyonlarda çağrı argümanlarından tuple türü çıkarır; recursive generic type kendine başvuran iç içe yapıları tanımlar. Birlikte güçlü, tür güvenli soyutlamalar kurulur.

type Baslikli<T> = [string, ...T[]];
type Agac<T> = { deger: T; sol?: Agac<T> };

Uygulama Concat yardımcısı yaz

Birlestir adında generic bir type tanımla: <A extends unknown[], B extends unknown[]> = [...A, ...B]. function birlestir<A extends unknown[], B extends unknown[]>(a: A, b: B): Birlestir<A, B> olsun ve gövdesi return [...a, ...b] dönsün. birlestir([1, 2], ["a", "b"]) çağrısı sonucunu sonuc'a ata ve sonuc[2] değerini console.log ile yazdır.

Başlangıç kodu

index.ts
// Birlestir generic type tanimla
// iki tuple'i spread ile birlestiren fonksiyon yaz
// cagri sonucunu sonuc'a ata
// sonuc[2] yazdir

Örnek çözüm

index.ts
type Birlestir<A extends unknown[], B extends unknown[]> = [...A, ...B];
function birlestir<A extends unknown[], B extends unknown[]>(a: A, b: B): Birlestir<A, B> {
  return [...a, ...b];
}
const sonuc = birlestir([1, 2], ["a", "b"]);
console.log(sonuc[2]);

Beklenen çıktı

a

Soru ve cevaplar

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

1 Aşağıdaki ifadelerden hangisi variadic tuple'ın bir örneğidir?

  • [string, ...number[]] Doğru cevap
  • number[]
  • { a: number }
  • [number, string]

Açıklama: Variadic tuple, spread operatörü içeren tuple'dır; [string, ...number[]] başı sabit, sonu değişken uzunluklu tuple örneğidir.

2 Recursive type kendine başvuru

Soru
type Agac<T> = {
  deger: T;
  alt?: ____<T>;
};
Cevap
type Agac<T> = {
  deger: T;
  alt?: Agac<T>;
};

Açıklama: Recursive type tanımında alt alanı yine aynı Agac<T> türüne başvurur.

3 İleri generic özeti

Kavram Anlamı
variadic tuple Değişken uzunluklu tuple
tuple inference Çağrıdan tuple çıkarma
recursive type Kendine başvuran tür
...T[] Spread tuple

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