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.