F4 · Modul 12
Data di batas sistem
48 langkah singkat, dari mudah sampai tantangan.
Level 1
Kenal
Level 2
Paham
Level 3
Terapkan
Level 4
Tantangan
Level 5
Pendalaman
Intinya
- JSON hanya membawa objek, array, string, angka (double), boolean, dan
null; sisanya diubah atau dibuang diam-diam, dan bilangan bulat di atas 2^53 − 1 berubah tanpa galat. - Tipe dihapus saat berjalan.
asdan type predicate adalah janji yang tidak diperiksa; di batas sistem, mulai dariunknowndan buktikan bentuknya. - Parse, don't validate: pengurai mengembalikan nilai bertipe baru yang hanya berisi medan dikenal, atau galat dengan jalur medan. Periksa di setiap batas, sekali.
- Zod 4 menulis skema sebagai nilai:
safeParse,issuesdenganpath, danz.inferyang menurunkan tipe;.readonly()dan tesSamamenjaga tipe tetap sama persis dengan tipe kanonik. - Server melaporkan masalah sebagai Problem Details (RFC 9457) dan menutup polusi prototipe serta mass assignment dengan menyimpan hanya medan yang dikenal.
Sebelum mulai
±4 jam.
Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.
Hasil belajar: menjelaskan apa yang bisa dan tidak bisa dibawa JSON (angka di atas 2^53, tanggal, undefined, BigInt, kunci ganda, __proto__); menunjukkan kenapa JSON.parse(teks) as Laporan tidak memeriksa apa pun karena tipe dihapus saat berjalan; memeriksa data unknown dengan narrowing, type predicate, dan fungsi pengurai yang melaporkan jalur medan; menerapkan prinsip parse, don't validate; menulis skema Zod 4 (objek, z.int, z.enum, z.iso.datetime, .readonly(), strictObject, refine) dan menurunkan tipe darinya dengan z.infer, lalu membuktikan kesamaannya dengan tes tipe; menjelaskan bagaimana pustaka skema menurunkan tipe dari nilai; mengembalikan galat yang bisa dibaca mesin dengan Problem Details (RFC 9457); menutup celah di batas sistem (prototype pollution, mass assignment, ukuran masukan) dan menulis SkemaLaporan + parseLaporan yang menolak laporan-rusak.json dengan jalur yang tepat.
Proyek: Laporan Warung langkah 12: SkemaLaporan (Zod 4) dan parseLaporan(data: unknown): Laporan, dengan z.infer<typeof SkemaLaporan> sama persis dengan Laporan (kontrak proyek §3).
Istilah di modul ini (63)
Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course
Bahan modul
Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.
- 9 berkas latihan + tes
- 2 berkas data
Lihat isi zip
- BACA-DULU.txt
- latihan_f4_12_1.ts
- latihan_f4_12_2.ts
- latihan_f4_12_4.ts
- latihan_f4_12_5.ts
- latihan_f4_12_7.ts
- latihan_f4_12_3.ts
- latihan_f4_12_6.ts
- latihan_f4_12_8.ts
- latihan_f4_12_9.ts
- laporan.json
- laporan-rusak.json