Study
TypeScript

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.

Editor Latihan

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.