Latihan 1: Proyek: Type-Safe App — TypeScript

Latihan 1 dari materi Proyek: Type-Safe App di TypeScript — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi fungsi filterByKey di kode awal. Tanda tangannya masih longgar, function filterByKey<T>(items: T[], key: keyof T, value: any): T[]: value: any menerima nilai apa saja.

  1. Kembalikan isi items yang nilai item[key]-nya sama persis (===) dengan value. Pakai items.filter(...), dan baca isiannya dengan kurung siku, item[key].
  2. Perketat tanda tangannya jadi function filterByKey<T, K extends keyof T>(items: T[], key: K, value: T[K]): T[], supaya nilai yang salah tipe ditolak TypeScript.

Dua pemanggilan ini dicek, dan hasilnya harus persis:

  1. filterByKey([{ a: 1 }, { a: 2 }, { a: 1 }], "a", 1) mengembalikan [{ a: 1 }, { a: 1 }]
  2. filterByKey([{ k: "a", n: 1 }, { k: "b", n: 2 }], "k", "b") mengembalikan [{ k: "b", n: 2 }]

TypeScript memeriksa kodemu dulu (mode strict, seperti tsc --noEmit), dan latihannya baru lolos kalau gak ada error tipe. Selain dua hasil tadi, yang dicek dari teks kodemu: ada fungsi filterByKey, ada K extends keyof T, value-nya bertipe T[K], dan ada anotasi tipe.

Hint