Çoklu tür parametresi
- TypeScript kursu
- Orta seviye
- Ders 18/89
- 4 dk
Birden fazla tür parametresi almayı öğrenirsin.
Birden fazla tür parametresi
Bir generic, birden fazla tür parametresi alabilir. Türler virgülle ayrılır: <T, U>. Her parametre bağımsızdır ve imzada istenilen yerde kullanılabilir. Sıra önemlidir; çağrıda türler aynı sırada verilir.
function cevir<T, U>(x: T, y: U): [U, T] {
return [y, x];
}
const r = cevir<number, string>(1, "a");
// r: [string, number]Anahtar-değer yapıları
Çoklu tür parametresi özellikle anahtar-değer yapılarında işe yarar. Bir Map<K, V>, K anahtarını V değerine eşler. Kendi Cift<K, V> sınıfını yazarak farklı türlerden iki değeri tür güvenli şekilde birlikte tutabilirsin.
Uygulama Anahtar-değer çifti
Cift<K, V> generic sınıfını yaz. Sınıfta private anahtar: K ve deger: V alanları olsun; constructor bu değerleri alsın ve alanlara atasın. al(): [K, V] metodu [this.anahtar, this.deger] döndürsün. Sonra Cift<string, number> örneği oluştur ("yas" ve 25) ve al() sonucunu yazdır.
Başlangıç kodu
// Cift<K, V> sınıfını yaz
// private anahtar: K ve private deger: V alanları tanımla
// constructor bu değerleri alıp alanlara atasın
// al metodu [this.anahtar, this.deger] döndürsün
// Cift<string, number> örneği oluştur, al() yazdırÖrnek çözüm
class Cift<K, V> {
private anahtar: K;
private deger: V;
constructor(anahtar: K, deger: V) {
this.anahtar = anahtar;
this.deger = deger;
}
al(): [K, V] {
return [this.anahtar, this.deger];
}
}
const c = new Cift<string, number>("yas", 25);
console.log(c.al());Beklenen çıktı
[ 'yas', 25 ]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İki tür parametresi alan bir generic nasıl bildirilir?
- Noktalı virgülle ayrılmış iki harf, açılı parantez içinde
- Boşlukla ayrılmış iki harf, açılı parantez içinde
- Açılı parantez içinde, virgülle ayrılmış iki harf Doğru cevap
- Köşeli parantez içinde, virgülle ayrılmış iki harf
Açıklama: Tür parametreleri açılı parantez içinde virgülle ayrılarak yazılır.
2 İkinci tür parametresi
function esle<A, B>(a: A, b: ____): [A, B] { return [a, b]; }
function esle<A, B>(a: A, b: B): [A, B] { return [a, b]; }
Açıklama: İkinci parametre B türünde olmalıdır; bu yüzden tür annotation olarak B yazılır. A yanlış tür, T tanımsız, string ise sabit bir türdür.
3 Çoklu tür parametresi parçaları
| Kavram | Anlamı |
|---|---|
<T, U> |
İki tür parametresi |
<K, V> |
Anahtar-değer için tür parametreleri |
[U, T] |
Tür sırasını tersine çevirme |
cevir<number, string> |
Açık iki tür argümanı |