Generičke tipovske promenljive u TypeScript-u

Kada kreiramo funkciju generičkog tipa, TypeScript nas primorava na ispravno korišćenje tipovskih promenljivih u njenom telu. Shodno tome, treba da razmotrimo ponašanje svakog parametra koji se prosleđuje funkciji, s aspekta svih dostupnih tipova.

Hajde da kreiramo funkciju za određivanje dužine promenljive generičkog tipa:

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

Greška se javlja zato što nemaju svi tipovi dužinu. Na primer, za bulove vrednosti takva radnja je nemoguća. Međutim, ako preciziramo tip i označimo ga kao niz, onda će kod raditi ispravno. Uostalom, svaki niz, bez obzira na njegov tip, ima dužinu:

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

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

Napišite funkciju za iteriranje i ispis svih elemenata niza generičkog tipa u konzolu.