Generics Dasar di TypeScript
Penjelasan
Generics memungkinkan fungsi, interface, atau class bekerja dengan berbagai tipe data TANPA kehilangan informasi tipe (beda dengan any yang menghilangkan pengecekan tipe sama sekali). Tipe generic ditulis dalam tanda kurung sudut <T> setelah nama fungsi/interface/class — T di sini cuma nama placeholder (bisa apa saja, tapi konvensinya huruf tunggal kapital seperti T, U, K, V).
Contoh Konsep
function elemenPertama<T>(daftar: T[]): T {
return daftar[0];
}
const angkaPertama = elemenPertama<number>([1, 2, 3]); // T = number
const teksPertama = elemenPertama(["a", "b"]); // TypeScript infer T = string otomatis
interface Kotak<T> {
isi: T;
}
const kotakAngka: Kotak<number> = { isi: 42 };
const kotakTeks: Kotak<string> = { isi: "halo" };
console.log(angkaPertama, teksPertama, kotakAngka.isi, kotakTeks.isi);
Praktikum
Buat fungsi generic elemenTerakhir<T>(daftar: T[]): T yang mengembalikan elemen terakhir array. Buat interface generic Pasangan<T, U> dengan properti pertama: T dan kedua: U. Uji keduanya dengan tipe data berbeda-beda.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Generics beda dengan any — any menghilangkan pengecekan tipe SEPENUHNYA, sedangkan generics tetap MEMPERTAHANKAN hubungan tipe antara input dan output (mis. array of number pasti mengembalikan number, bukan tipe apa saja).