Obecné typové proměnné v TypeScript

Když vytváříme funkci obecného typu, TypeScript nás nutí ke správnému použití typových proměnných v jejím těle. Proto je třeba uvažovat chování každého parametru předávaného do funkce z hlediska všech nám dostupných typů.

Vytvořme funkci pro určení délky proměnné obecného typu:

typescriptfunction myFunc <T> (data: T): T {
  console.log(data.length); // chyba
  return data;
}

Chyba nastává protože ne všechny typy mají délku. Například u booleovských hodnot je taková akce nemožná. Avšak pokud upřesníme typ a určíme jej jako pole, kód bude fungovat správně. Vždyť každé pole, bez ohledu na jeho typ, má délku:

typescriptfunction myFunc <T> (data: T[]): T[] {
  console.log(data.length); // 3
  return data;
}

console.log(myFunc([1, 3, 5])); // [ 1, 3, 5 ]
Задание 1

Napište funkci pro iteraci a výpis všech prvků pole obecného typu do konzole.