TypeScript-də Ümumiləşdirilmiş Tip Dəyişənləri
Ümumiləşdirilmiş tip funksiya yaratdığımız zaman, TypeScript bizə onun bədənində tip dəyişənlərindən düzgün istifadə etməyi məcbur edir. Nəticədə, funksiyaya ötürülən hər bir parametrin davranışını, bizə mövcud olan bütün tiplər baxımından nəzərdən keçirmək lazımdır.
Gəlin ümumiləşdirilmiş tip dəyişənin uzunluğunu müəyyən etmək üçün funksiya yaradaq:
function myFunc <T> (data: T): T {
console.log(data.length); // xəta
return data;
}
Xəta ona görə baş verir ki, bütün tiplərin uzunluğu yoxdur. Məsələn, məntiqi dəyərlər üçün belə bir hərəkət mümkün deyil. Lakin biz tipi dəqiqləşdirib onu massiv kimi göstərsək, kod düzgün işləyəcək. Axı hər bir massivin, onun tipindən asılı olmayaraq, uzunluğu var:
function myFunc <T> (data: T[]): T[] {
console.log(data.length); // 3
return data;
}
console.log(myFunc([1, 3, 5])); // [ 1, 3, 5 ]
Ümumiləşdirilmiş tip massivin bütün elementlərini çap etmək və konsola yazdırmaq üçün funksiya yazın.