Type Alias vs Interface
Penjelasan
type membuat alias/nama baru untuk sebuah tipe, mirip fungsi interface untuk mendefinisikan bentuk objek, tapi type lebih fleksibel karena bisa dipakai untuk union, tuple, primitif, atau kombinasi tipe lain — bukan cuma bentuk objek. Untuk mendefinisikan bentuk objek biasa, interface dan type bisa dipakai bergantian; bedanya interface bisa di-"extend" berkali-kali (declaration merging) sedangkan type tidak.
Contoh Konsep
type ID = string | number; // type bisa alias untuk union, interface tidak bisa begini
type Koordinat = {
x: number;
y: number;
};
function cariData(id: ID): void {
console.log(`Mencari data dengan id: ${id}`);
}
const titik: Koordinat = { x: 10, y: 20 };
cariData("abc123");
cariData(101);
Praktikum
Buat type alias Status yang merupakan union dari string literal "aktif", "nonaktif", dan "pending". Buat fungsi cekStatus(status: Status): void yang mencetak status tersebut, lalu panggil dengan salah satu nilai yang valid.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Aturan praktis dari tim TypeScript sendiri: pakai interface untuk mendefinisikan bentuk objek/API publik (karena bisa di-extend), dan pakai type untuk union, tuple, atau tipe hasil kombinasi lain yang tidak bisa diungkapkan lewat interface.