I generics ti permettono di scrivere codice riutilizzabile parametrizzato da un tipo — una "variabile di tipo" riempita quando il codice viene utilizzato. Ti danno il riutilizzo senza perdere la type safety (l'alternativa, any, la perde).
ts
(): { arr[]; }
first<T>(: T[]): T { arr[]; }
n = ([, , ]);
s = ([, ]);
