TypeScript-de umumy tip funksiýasy

Öňki sapaklarda biz, umumy tip parametrlerini kabul edýän identifikator funksiýasyny ýasadyk. Indi biz, beýle funksiýanyň tipini düşündirmegi we umumy interfeýsleri döretmegi öweneris.

Umumy tip funksiýasyny ok görnüşinde hem ýazyp bolýar. Geliň, func üýtgeýjisini belleýäli, onuň umumy funksiýanyň tipi bolsun:

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

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

Şeýle üýtgeýji üçin umumy tip üçin başga nyşany hem bellenip bolýar. Esasy zat, tip atlarynyň bir-biri bilen ýagdaýýetmezligine göz ýetirmek:

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

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

Umumy tip, çagyryş şifr we tip funksiýasyny ýaýly möýrewiklere salyp, ýazyp bolýar:

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

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

Bu sapakda düşündirilen wariantlarda, umumy tip massiwiniň uzynlygyny anyklamak üçin funksiýa ýazyň.