0Pricing
TypeScript Academy · Pelajaran

Pemeriksaan Properti Berlebih dan Kebaruan

Pelajari alasan properti berlebih memicu error dalam konteks tertentu.

Pemeriksaan Properti Berlebih dan Kebaruan adalah pelajaran TypeScript Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar TypeScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus TypeScript Academy mencakup 4 pelajaran total.

Apa Itu Kesegaran?

Kesegaran adalah konsep TypeScript yang membuat literal objek dianggap "segar" saat dibuat. Objek yang segar menjalani pemeriksaan properti berlebih yang ketat, sedangkan objek yang telah diperlebar tidak.

interface Point { x: number; y: number; }
const p: Point = { x: 1, y: 2, z: 3 }; // Error: 'z' not in Point

Pemeriksaan Properti Berlebih dalam Praktik

Ketika Anda menetapkan literal objek secara langsung ke variabel bertipe atau meneruskannya sebagai argumen fungsi, TypeScript melaporkan properti tambahan yang tidak terdapat dalam tipe target.

function setPoint(p: { x: number; y: number }) {}
setPoint({ x: 1, y: 2, z: 3 }); // Error: 'z' excess property

Alasan Pemeriksaan Properti Berlebih Ada

Fitur ini menemukan kesalahan pengetikan dan properti yang tidak disengaja dalam objek konfigurasi, yang merupakan sumber kesalahan umum dalam JavaScript.

interface Options { timeout: number; retry?: boolean; }
const opts: Options = { timeout: 3000, retrey: true }; // Error — typo!

Cara Kesegaran Hilang

Setelah literal objek ditetapkan ke variabel perantara, literal tersebut tidak lagi "segar" dan pemeriksaan properti berlebih tidak berlaku pada tipe yang telah diperlebar.

const opts = { timeout: 3000, retry: true, extra: "surprise" };
const o: Options = opts; // No error — freshness lost on assignment

Asersi Tipe Melewati Kesegaran

Menggunakan asersi tipe as juga melewati pemeriksaan properti berlebih, yang dapat menyembunyikan kesalahan.

const o = { timeout: 3000, typo: true } as Options; // No error

Pemeriksaan Properti Berlebih dengan Tipe Irisan

Tipe irisan terkadang dapat melonggarkan pemeriksaan properti berlebih karena properti tambahan mungkin termasuk dalam salah satu anggota irisan.

type A = { x: number };
type B = { y: number };
const ab: A & B = { x: 1, y: 2 }; // OK

Properti Readonly dan Properti Berlebih

Pemeriksaan properti berlebih juga berlaku pada tipe objek readonly — aturan ini berkaitan dengan struktur, bukan kemampuan untuk diubah.

interface Cfg { readonly host: string; }
const c: Cfg = { host: "localhost", port: 3000 }; // Error

Tanda Tangan Indeks dan Properti Berlebih

Menambahkan tanda tangan indeks ke suatu tipe memungkinkan properti tambahan apa pun yang kuncinya berupa string, sehingga pemeriksaan properti berlebih untuk tipe tersebut pada dasarnya dinonaktifkan.

interface Flexible { name: string; [key: string]: unknown; }
const f: Flexible = { name: "ts", extra: true }; // OK

Properti Opsional dan Kesegaran

Properti opsional tidak melonggarkan pemeriksaan properti berlebih. Properti yang sama sekali tidak tercantum — bahkan sebagai properti opsional — tetap dilaporkan sebagai properti berlebih.

interface Shape { color?: string; }
const s: Shape = { color: "red", size: 10 }; // Error: 'size' excess

Pola Praktis

Untuk meneruskan properti konfigurasi tambahan melalui antarmuka bertipe tanpa kesalahan, gunakan variabel perantara atau tanda tangan indeks dalam antarmuka tersebut.

// Option 1: intermediate variable (freshness lost)
const cfg = { timeout: 3000, debugMode: true };
const o: Options = cfg;
// Option 2: index signature in interface

Ringkasan: Kesegaran

Kesegaran berlaku pada literal objek yang segar dan memungkinkan pemeriksaan properti berlebih saat penetapan dilakukan. Tetapkan objek ke variabel perantara atau gunakan tanda tangan indeks untuk mengizinkan properti tambahan.

Pemeriksaan Singkat

Kapan pemeriksaan properti berlebih TIDAK berlaku?

Yang Anda Pelajari

Kesegaran dan pemeriksaan properti berlebih melindungi Anda dari kesalahan pengetikan dan properti yang tidak disengaja dalam literal objek. Pahami kapan kesegaran hilang agar terhindar dari kesalahan tipe yang mengejutkan atau kesalahan tersembunyi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pemeriksaan Properti Berlebih dan Kebaruan” gratis?

Ya — teks lengkap “Pemeriksaan Properti Berlebih dan Kebaruan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus TypeScript Academy, upgrade ke CoddyKit PRO. Kursus TypeScript Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pemeriksaan Properti Berlebih dan Kebaruan”?

Pelajari alasan properti berlebih memicu error dalam konteks tertentu. Kamu berlatih TypeScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai TypeScript Academy?

Tidak diperlukan pengalaman sebelumnya. TypeScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Pemeriksaan Properti Berlebih dan Kebaruan” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran TypeScript Academy ini?

Ya. Setiap pelajaran TypeScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mekanisme Pelebaran dan Penyempitan Tipe
  2. Penentuan Tipe Kontekstual: Inferensi dari Konteks
  3. Pemeriksaan Properti Berlebih dan Kebaruan
  4. Assertion const dan as const
← Kembali ke TypeScript Academy