Latihan 1: Intersection Types & keyof — TypeScript
Latihan 1 dari materi Intersection Types & keyof di TypeScript — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi kode awal:
type Posisi dengan properti x: number dan y: number.
type Warna dengan properti warna: string.
type Titik sebagai intersection dari keduanya. Tulis persis Posisi & Warna, jangan menulis ulang x, y, dan warna di dalamnya.
Isi fungsi getValue supaya mengembalikan nilai properti bernama key dari obj. Biarkan baris function getValue<T, K extends keyof T>(obj: T, key: K): T[K] { seperti di kode awal: keyof dan T[K] di situ ikut diperiksa.
Kodemu memuat type Posisi, type Warna (boleh juga interface), dan Posisi & Warna.
TypeScript memeriksa kodemu dulu (mode strict, seperti tsc --noEmit) dan gak menemukan error. Error-nya muncul di console dengan format tsc.
Baris uji ini ditaruh sesudah kodemu, seperti tes tipe:
const titik: Titik = { x: 1, y: 2, warna: "merah" } harus diterima.
const titik: Titik = { x: 1, y: 2 } harus ditolak dengan error TS2322, karena warna hilang.
getValue({ x: 1, y: 2, warna: "merah" }, "z") harus ditolak dengan error TS2345: "z" bukan salah satu keyof objeknya.
const w: number = getValue({ x: 1, y: 2, warna: "merah" }, "warna") harus ditolak dengan error TS2322: T[K] di sini string.
Hint
Intersection memakai tanda & dan artinya nilainya harus punya semua properti dari dua tipe. getValue cukup membaca properti yang namanya dikirim lewat key.
Tulis type Posisi = { x: number; y: number }, type Warna = { warna: string }, lalu type Titik = Posisi & Warna. Di getValue, baca properti dengan kurung siku memakai key.
type Titik = Posisi & Warna; dan di dalam getValue: return obj[key];
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...