TypeScripti generiilised tüübi muutujad
Kui loome generiilse tüübi funktsiooni, sunnib TypeScript meid õigesti kasutama tüübi muutujaid selle kehas. Seetõttu tuleb käsitleda iga funktsiooni edastatava parameetri käitumist kõigile meile kättesaadavatele tüüpidele.
Loome funktsiooni generiilse tüübi muutuja pikkuse määramiseks:
function myFunc <T> (data: T): T {
console.log(data.length); // viga
return data;
}
Viga tekib seetõttu, et mitte kõigil tüüpidel pole pikkust. Näiteks boole'i väärtuste puhul on selline tegevus võimatu. Kui me aga täpsustame tüüpi ja märgime selle massiivina, siis kood töötab korrektselt. Igal massiivil, olenemata selle tüübist, on pikkus:
function myFunc <T> (data: T[]): T[] {
console.log(data.length); // 3
return data;
}
console.log(myFunc([1, 3, 5])); // [ 1, 3, 5 ]
Kirjutage funktsioon generiilse tüübi massiivi kõigi elementide läbimiseks ja väljastamiseks konsooli.