Cześć, podążam za https://www.typescriptlang.org/docs/handbook/generics .html i zobaczył następującą funkcję

function loggingIdentity<T>(arg: T[]): T[] {
  console.log(arg.length);
  return arg;
}

Poniżej znajduje się wyjaśnienie:

Można odczytać rodzaj logowania jako "Logging funkcji ogólnej zabiera parametr typu T, a argument argumentowy, który jest tablicą TS i zwraca tablicę TS". Jeśli przekazanomy w tablicy liczb, dostaniemy tablicę liczb, ponieważ t wiązałby się z liczbą. Umożliwia to wykorzystanie naszej zmiennej typu ogólnego T W ramach typów, z którymi pracujemy, a nie całym typem, dając nam większą elastyczność.

Próbuję zrozumieć, dlaczego istnieje potrzeba zadeklarowania <T> w funkcji. Zrozumiałem, że funkcja zajmuje teraz tablicę typu ogólnego i zwrócić również wartość dzięki temu rodzaju ogólnym. Dlaczego nie możemy po prostu usunąć redundancji i deklarować w następujący sposób:

function loggingIdentity(arg: T[]): T[] {
  console.log(arg.length);
  return arg;
}
-2
tnkh 10 październik 2020, 18:19

1 odpowiedź

Najlepsza odpowiedź

Używając <T> w funkcji, oświadczasz, że T jest ogólnym parametrem. Jeśli tego nie zrobisz, maszynopis nie wie, co oznacza, co oznacza T w arg: T[]. Pomyślałby po prostu, że napisałeś nazwę typu.

2
Stéphane Veyret 10 październik 2020, 15:31