Object Types & Interface Bersarang
Penjelasan
Bentuk objek juga bisa dianotasi langsung inline tanpa interface terpisah (object type literal), atau lewat interface bersarang — properti sebuah interface bisa bertipe interface lain, membentuk struktur objek kompleks bertingkat.
Contoh Konsep
interface Alamat {
kota: string;
kodePos: string;
}
interface Pengguna {
nama: string;
alamat: Alamat; // interface bersarang
}
const user: Pengguna = {
nama: "Budi",
alamat: { kota: "Jakarta", kodePos: "12345" },
};
console.log(user.alamat.kota);
function tampilkanPoin(p: { x: number; y: number }): void { // object type inline
console.log(`(${p.x}, ${p.y})`);
}
Praktikum
Buat interface Alamat dengan kota dan kodePos (keduanya string). Buat interface Perusahaan dengan properti nama (string) dan alamat (Alamat). Buat objek const kantor: Perusahaan lalu tampilkan nama dan kota-nya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau sebuah object type inline dipakai berulang di banyak tempat (lebih dari sekali-dua kali), sebaiknya diekstrak jadi interface atau type alias terpisah — selain lebih ringkas, perubahan strukturnya cukup dilakukan di satu tempat.