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

Գրեք ֆունկցիա ընդհանրացված տիպի զանգվածի երկարությունը որոշելու համար՝ այս դասում նկարագրված տարբերակներով: