Обобщённые типы (generics) позволяют писать переиспользуемый код, параметризованный типом — «переменную типа», которая заполняется при использовании кода. Они обеспечивают переиспользование без потери безопасности типов (альтернатива any её теряет).
ts
(): { arr[]; }
first<T>(: T[]): T { arr[]; }
n = ([, , ]);
s = ([, ]);
