Latihan 1 dari materi Classes di TypeScript di TypeScript — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi class Hewan yang sudah ada di kode awal. Tulis isinya di dalam kurung kurawal class Hewan { }, dan jangan ganti namanya.
- Tulis
constructor dengan dua parameter property: public nama: string dan private suara: string. Kata private wajib ada di kodemu, atau simpan suaranya di private field #suara (lalu isi this.#suara = suara di constructor).
- Tulis method
bersuara(): string, lengkap dengan tipe kembaliannya. Method ini mengembalikan nama, lalu teks bersuara: (spasi, kata bersuara, titik dua, spasi), lalu suaranya. Baca keduanya lewat this.
Dua pemanggilan ini dicek, dan hasilnya harus persis:
new Hewan("Kucing", "Meow").bersuara() mengembalikan "Kucing bersuara: Meow"
new Hewan("Anjing", "Guk").bersuara() mengembalikan "Anjing bersuara: Guk"
Selain dua hasil tadi, yang dicek dari teks kodemu: ada class bernama Hewan, ada private (atau field #suara), ada anotasi : string, dan method-nya punya tipe kembalian, bersuara(): string.
Kodemu juga harus lolos pemeriksaan TypeScript (mode strict, seperti tsc --noEmit) tanpa error. Error-nya muncul di console dengan format tsc. Membaca suara dari luar class, misalnya console.log(kucing.suara), termasuk error. Lalu dua baris uji ini ditaruh sesudah kodemu:
const nama: string = new Hewan("Kucing", "Meow").nama harus diterima: nama public.
new Hewan("Kucing", "Meow").suara harus ditolak, dengan error TS2341: Property 'suara' is private and only accessible within class 'Hewan'. (atau error TS2339 kalau suaranya kamu simpan di field #suara).