Study
TypeScript

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.

Editor Latihan

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).