TypeScript'te Tip Değişkenleri
Jenerikler kavramını daha iyi anlamak için ilk fonksiyonumuzu oluşturalım - özdeşlik fonksiyonu. Böyle bir fonksiyon kendisine iletileni - aynı tiple - olduğu gibi döndürür.
Öncelikle fonksiyonumuzun varyantlarını ayrı ayrı yazalım.
Parametre olarak bir sayı alan ve bir sayı döndüren bir fonksiyon yazalım:
function func(data: number): number {
return data;
}
Şimdi parametre olarak bir dize alan ve bir dize döndüren bir fonksiyon yazalım:
function func(data: string): string {
return data;
}
Şimdi tüm bunları tek bir fonksiyonun yapmasını istiyoruz. Yani bir genelleme yapmak istiyoruz.
Bunun için tip değişkeni kullanacağız,
bu değişken veri tipini kendinde saklar. Böyle
bir değişken, fonksiyon parametrelerinin olduğu
parantezlerden önce açılı parantezler içinde
bildirilir. Şimdi T (herhangi bir isim
verilebilir) adını vererek böyle bir değişken
tanımlayalım:
function func <T>(buraya parametreler) {
return data;
}
Bundan sonra, parametrenin tipini içine koymak
ve ardından dönüş değeri olarak belirtmek için
kullanabileceğimiz T değişkenimiz olacak.
Parametremize tipini değişkenimiz şeklinde belirtelim:
function func <T>(data: T) {
return data;
}
Sonuçta, parametre herhangi bir tipte iletilebilir
ve bu tip T değişkenimize kaydedilir.
Şimdi T değişkeninin değerini fonksiyonun
sonucunu belirtmek için kullanalım:
function func <T>(data: T): T {
return data;
}
Artık fonksiyonun dönüş tipinin, parametrenin tipinden elde edileceği sonucu çıkıyor. Şimdi kontrol edelim.
Fonksiyonu bir sayı ile çağıralım:
console.log( func(3) ); // 3 yazdırır
Fonksiyonu bir dize ile çağıralım:
console.log( func('x') ); // 'x' yazdırır
Parametre olarak iki sayı veya iki dize alan bir fonksiyon yapın. Fonksiyon, sonuç olarak parametrelerin toplamını döndürmelidir.