objecttipedasarPemula3 mnt baca
Tipe Object
Mengetik bentuk object: properti wajib, optional, readonly, dan jebakan excess property.
Bentuk Object Ditulis Inline
typescript
let pengguna: { nama: string; umur: number } = {
nama: "Ana",
umur: 17,
};
pengguna.umur = "tujuh belas";
// Error: Type 'string' is not assignable to type 'number'.
console.log(pengguna.alamat);
// Error: Property 'alamat' does not exist on type '{ nama: string; umur: number }'.Typo nama properti yang di JavaScript menghasilkan undefined diam-diam, di TypeScript langsung error. Ini penyelamat nyata saat mengakses response API.
Properti Optional dan Readonly
typescript
let produk: {
id: number;
nama: string;
deskripsi?: string; // boleh tidak ada
readonly sku: string; // tidak boleh diubah setelah dibuat
} = { id: 1, nama: "Kopi", sku: "KPI-001" };
produk.sku = "KPI-002";
// Error: Cannot assign to 'sku' because it is a read-only property.Tanda ? membuat properti boleh absen. readonly mengunci setelah inisialisasi, cocok untuk id atau kode unik.
Excess Property Check
typescript
let p: { nama: string } = { nama: "Ana", umur: 17 };
// Error: 'umur' does not exist in type '{ nama: string }'.Object literal yang punya properti berlebih ditolak. Ini biasanya typo atau salah kirim field ke API.
Catatan teknis: Excess property check hanya berlaku untuk object literal yang ditulis langsung. Kalau object-nya lewat variabel dulu, properti berlebih lolos tanpa error. Ini by design, bukan bug, tapi perlu kamu sadari saat debugging.