Функцыю абагульненага тыпу ў 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

Напішыце функцыю для вызначэння даўжыні масіва абагульненага тыпу ў варыянтах, апісаных у даным уроку.