Абагульеныя тыпавыя зменныя ў TypeScript
Калі мы ствараем функцыю абагульенага тыпу, TypeScript прымушае нас да правільнага выкарыстання тыпавых зменных у яе целе. Такім чынам, трэба разглядаць паводзіны кожнага параметра, які перадаецца ў функцыю, з пункту гледжання ўсіх даступных нам тыпаў.
Давайце створым функцыю для вызначэння даўжыні зменнай абагульенага тыпу:
function myFunc <T> (data: T): T {
console.log(data.length); // памылка
return data;
}
Памылка ўзнікае з-за таго, што не ўсе тыпы маюць даўжыню. Напрыклад, для булевых значэнняў такое дзеянне немагчыма. Аднак калі мы ўдакладнім тып і пакажам яго як масіў, то код спрацуе правільна. Бо ў кожнага масіва, неважна які ён тыпу, ёсць даўжыня:
function myFunc <T> (data: T[]): T[] {
console.log(data.length); // 3
return data;
}
console.log(myFunc([1, 3, 5])); // [ 1, 3, 5 ]
Напішыце функцыю для перабору і вываду ўсіх элементаў масіву абагульенага тыпу ў кансоль.