Интерфейс обобщенного типа в TypeScript

Теперь давайте перейдем к описанию интерфейса обобщенного типа для вызова функции. Зададим в нем сигнатуру вызова функции:

typescriptinterface IFunc {
  <T> (data: T): T;
}

Далее объявим функцию myFunc и распишем код в ее теле:

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

let func: IFunc = myFunc;

Затем напишем переменную func, тип которой ссылается на IFunc. А сама переменная вызывает функцию myFunc:

typescriptlet func: IFunc = myFunc;

Полный код будет выглядеть вот так:

typescriptinterface IFunc {
  <T> (data: T): T;
}

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

let func: IFunc = myFunc;

console.log(func('abcde'));

После выполнения кода мы увидим:

typescript'abcde'