Функция может работать с разными типами данных
функция работает с массивом типа Т, параметр Т динамически подстраивается под передаваемый параметр
const arrayOfNumbers: Array<number> = [1, 1, 2, 3, 5];
const arrayOfStrings: Array<string> = ['Hello', 'user'];
function reverse<T>(array: T[]):T[] {
return array.reverse();
}
reverse(arrayOfNumbers);
reverse(arrayOfStrings);