Özet - İleri generic'ler
- TypeScript kursu
- İleri seviye
- Ders 4/57
- 4 dk
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
// Birlestir generic type tanimla
// iki tuple'i spread ile birlestiren fonksiyon yaz
// cagri sonucunu sonuc'a ata
// sonuc[2] yazdirÖrnek çözüm
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
type Agac<T> = {
deger: T;
alt?: ____<T>;
};
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 |