Latihan 1: Type Narrowing — TypeScript

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

Lengkapi fungsi panjang(input). Parameter input bertipe string | string[]: satu teks, atau array berisi teks.

  1. Kalau input string (cek dengan typeof input === "string"), kembalikan input.length, yaitu banyaknya karakter.
  2. Kalau input array, kembalikan input.length, yaitu banyaknya isi array.

Biarkan baris function panjang(input: string | string[]): number dari kode awal apa adanya: union-nya ikut diperiksa.

Yang dicek:

  1. panjang("hello") mengembalikan 5.
  2. panjang(["a", "b", "c"]) mengembalikan 3.
  3. Kodemu punya pengecekan typeof input (atau Array.isArray(input)).
  4. TypeScript memeriksa kodemu dulu (mode strict, seperti tsc --noEmit) dan gak menemukan error. Error-nya muncul di console dengan format tsc.
  5. Dua baris uji ini ditaruh sesudah kodemu:
    • const n: number = panjang("abc") + panjang(["a", "b"]) harus diterima TypeScript: teks dan array teks sama-sama boleh masuk, dan hasilnya angka.
    • panjang(42) harus ditolak dengan error TS2345: angka gak termasuk string | string[].

Satu return input.length tanpa pengecekan memang memberi angka yang sama, tapi yang kamu latih di sini justru pengecekannya, jadi itu ikut dinilai.

Hint