Materi
Fungsi generik memakai parameter tipe, ditulis dalam kurung sudut setelah nama fungsi. Parameter tipe itu diisi otomatis dari argumen yang dikirim, sehingga satu fungsi bisa dipakai untuk array angka maupun array teks tanpa ditulis dua kali.
function pertama<T>(daftar: T[]): T {
return daftar[0];
}
const angka = pertama([15000, 4000]); // bertipe number
const kota = pertama(["Bandung", "Medan"]); // bertipe stringTanpa generik, pilihannya adalah menulis satu fungsi per tipe atau memakai any yang membuang pemeriksaan tipe. Dengan generik, hasil pertama([15000, 4000]) tetap dikenali sebagai number, sehingga pemanggilan method teks seperti toUpperCase pada hasil itu langsung ditolak kompiler.
Satu parameter tipe yang dipakai di dua tempat menuntut keduanya sama. Fungsi bertanda tangan (a: T[], b: T[]) => T[] menolak panggilan dengan array angka dan array teks sekaligus, karena T tidak bisa menjadi dua tipe pada satu panggilan yang sama.