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 PointPemeriksaan 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 propertyAlasan 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 assignmentAsersi 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 errorPemeriksaan 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 }; // OKProperti 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 }; // ErrorTanda 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 }; // OKProperti 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' excessPola 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 interfaceRingkasan: 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
- Mekanisme Pelebaran dan Penyempitan Tipe
- Penentuan Tipe Kontekstual: Inferensi dari Konteks
- Pemeriksaan Properti Berlebih dan Kebaruan
- Assertion const dan as const