Latihan 1: Advanced Types — TypeScript

Latihan 1 dari materi Advanced Types di TypeScript — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Kode awal sudah punya dua kerangka: type Stringify<T> = { ... } dan function keys<T extends object>(obj: T): (keyof T)[] { ... }. Biarkan baris pembukanya, termasuk penanda type-nya, lalu isi keduanya.

  1. Di dalam kurung kurawal Stringify, tulis mapped type yang mengubah semua property jadi string: [K in keyof T]: string. Hasilnya, Stringify<{ a: number; b: boolean }> jadi { a: string; b: string }.
  2. Di dalam keys, kembalikan daftar key dari obj: return Object.keys(obj) as (keyof T)[].

Yang dicek:

TypeScript memeriksa kodemu dulu (mode strict, seperti tsc --noEmit), error tipenya muncul di console, dan latihannya baru lolos kalau gak ada error. Tanpa as (keyof T)[], TypeScript menolak return Object.keys(obj) dengan TS2322, karena Object.keys mengembalikan string[].

Hint