Generic nedir?
- TypeScript kursu
- Orta seviye
- Ders 15/89
- 4 dk
Tür parametreli fonksiyonları öğrenirsin.
Generic nedir?
Generic, bir fonksiyonun veya sınıfın çağrıldığında türü parametre olarak almasıdır. Açılı parantez <T> içindeki harf tür parametresidir ve çağrıldığında gerçek türle değişir. Aynı fonksiyon farklı türlerle tür güvenli şekilde çalışır.
function ilk<T>(dizi: T[]): T {
return dizi[0];
}
const s = ilk<number>([1, 2, 3]);
const m = ilk<string>(["a", "b"]);Generic olmadan
Generic olmadan her tür için ayrı fonksiyon yazmak gerekir: ilkSayi, ilkMetin, vb. Generic ile tek bir ilk<T> fonksiyonu tüm türlerde çalışır ve derleyici yanlış tür kullanımını yakalar. Bu, kod tekrarını azaltırken tür güvenliğini korur.
Uygulama Son elemanı döndür
son<T> generic fonksiyonunu yaz: parametresi dizi: T[], dönüş türü T. Dizinin son elemanını döndürsün. Sonra son([10, 20, 30]) çağrısının sonucunu console.log ile yazdır.
Başlangıç kodu
// son<T>(dizi: T[]): T fonksiyonunu yaz
// dizinin son elemanını döndür
// son([10, 20, 30]) sonucunu console.log ile yazdırÖrnek çözüm
function son<T>(dizi: T[]): T {
return dizi[dizi.length - 1];
}
console.log(son([10, 20, 30]));Beklenen çıktı
30
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Aşağıdaki fonksiyonda T neyi temsil eder?
function ilk<T>(dizi: T[]): T- Tür parametresi Doğru cevap
- Sabit number türü
- Bir değişken adı
- Bir interface adı
Açıklama: T bir tür parametresidir; çağrıldığında number veya string gibi gerçek bir türle değiştirilir. Değişken adı veya interface adı değildir.
2 Tür parametresi ekle
function kimlik<____>(x: T): T {
return x;
}
function kimlik<T>(x: T): T {
return x;
}
Açıklama: Gövde T kullandığından tür parametresi de T olmalıdır. U veya Type yazılırsa gövdedeki T tanımsız kalır; t ise farklı bir tanımlayıcıdır ve büyük-küçük harf duyarlılığından dolayı yine T tanımsız olur.
3 Generic parçalar
| Kavram | Anlamı |
|---|---|
<T> |
Tür parametresi bildirimi |
ilk<number>(...) |
Tür argümanı vererek çağrı |
T[] |
Tür parametresi dizi olarak |
function ilk |
Generic fonksiyon adı |