Функција генеричког типа у TypeScript-у

У претходним лекцијама направили смо идентитетску функцију која је примала параметре генеричког типа. Сада ћемо научити да опишемо тип такве функције и да креирамо генеричке интерфејсе.

Функцију генеричког типа такође можемо записати и у облику стреличасте функције. Хајде да декларишемо променљиву func, чији ће бити тип генеричке функције:

typescriptfunction myFunc <T> (data: T): T {
  return data;
}

let func: <T> (data: T) => T = myFunc;

Може се задати и други симбол за генерички тип такве променљиве. Главно је пазити да се имена типова не конфликтирају:

typescriptfunction myFunc <T> (data: T): T {
  return data;
}

let func: <U> (data: U) => U = myFunc;

Генерички тип се може записати, затворивши потпис позива и тип функције у витичасте заграде:

typescriptfunction myFunc < T > (data: T): T {
  return data;
}

let func: {<U> (data: U): U} = myFunc;
Задание 1

Напишите функцију за одређивање дужине низа генеричког типа у варијантама, описаним у овој лекцији.