TypeScript-də Tip Dəyişənləri
Generiklər anlayışını daha yaxşı başa düşmək üçün gəlin ilk funksiyamızı yaradaq - şəxsiyyət funksiyası. Belə bir funksiya ona ötürülən dəyəri eyni tip ilə qaytarır.
Gəlin əvvəlcə funksiyamızın variantlarını ayrı-ayrılıqda yazaq.
Parametr kimi ədəd qəbul edən və ədəd qaytaran funksiya yazaq:
function func(data: number): number {
return data;
}
İndi parametr kimi sətir qəbul edən və sətir qaytaran funksiya yazaq:
function func(data: string): string {
return data;
}
İndi tutaq ki, biz bunların hamısını bir funksiyanın etməsini istəyirik. Yəni biz ümumiləşdirmə etmək istəyirik.
Bunun üçün biz məlumat tipini özündə saxlayan tip dəyişəni istifadə edəcəyik.
Belə bir dəyişən funksiya parametrlərinin olduğu dəyirmi mötərizələrdən əvvəl bucaqlı mötərizələr daxilində elan edilir.
Gəlin ona T adını verərək (istənilən ad vermək olar) belə bir dəyişən elan edək:
function func <T>(bura parametrlər) {
return data;
}
Bundan sonra bizim parametrin tipini ona qoymaq üçün istifadə edə biləcəyimiz T dəyişəni olacaq,
və sonra onu qaytarılan dəyər kimi göstərmək olar.
Gəlin parametrimizin tipini bizim dəyişənimiz şəklində göstərək:
function func <T>(data: T) {
return data;
}
Beləliklə, parametrin istənilən tipdə ötürülə biləcəyi və bu tipin bizim T dəyişənimizdə saxlanılacağı nəticə çıxır.
İndi T dəyişəninin dəyərindən funksiyanın nəticəsini göstərmək üçün istifadə edək:
function func <T>(data: T): T {
return data;
}
İndi funksiyanın nəticə tipinin parametrin tipindən alınacağı nəticə çıxır. Gəlin yoxlayaq.
Funksiyanı ədədlə çağıraq:
console.log( func(3) ); // 3 çap edəcək
Funksiyanı sətirlə çağıraq:
console.log( func('x') ); // 'x' çap edəcək
Parametr kimi ya iki ədəd, ya da iki sətir qəbul edən funksiya edin. Funksiya öz nəticəsi kimi parametrlərin cəmini qaytarmalıdır.