Materi
interface memberi nama pada sebuah bentuk objek, sehingga bentuk yang sama tidak perlu ditulis ulang di banyak tempat. Nama interface lazim ditulis dengan huruf besar di awal, dan tiap propertinya ditulis satu baris berisi nama, titik dua, lalu tipenya.
interface Pelanggan {
nama: string;
kota: string;
poin: number;
}
function sapaPelanggan(p: Pelanggan): string {
return `Halo ${p.nama} dari ${p.kota}, poinmu ${p.poin}`;
}
console.log(sapaPelanggan({ nama: "Sari", kota: "Medan", poin: 120 }));Objek yang dikirim harus punya semua properti yang tertulis di interface dengan tipe yang cocok. Properti yang kurang ditolak dengan pesan Property 'kota' is missing in type, dan properti tambahan yang ditulis langsung di pemanggilan ditolak dengan pesan Object literal may only specify known properties.
Satu interface bisa dipakai di banyak fungsi sekaligus. Ketika bentuk data berubah — misalnya poin pelanggan diganti menjadi saldo — cukup interface-nya yang disunting, lalu kompiler menunjukkan setiap tempat yang perlu ikut disesuaikan, termasuk yang sudah lama tidak disentuh.