Study
TypeScript

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.

Editor Latihan

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.