Literal Types & Enum
Penjelasan
Literal type membatasi sebuah tipe hanya boleh berisi nilai PERSIS tertentu (bukan sekadar "string" umum, tapi harus salah satu string spesifik), biasa dikombinasikan dengan union. enum adalah cara lain untuk mendefinisikan sekumpulan nilai konstan bernama, memudahkan pembacaan kode dibanding memakai angka/string mentah.
Contoh Konsep
type Arah = "utara" | "selatan" | "timur" | "barat"; // literal type union
function gerak(arah: Arah): void {
console.log(`Bergerak ke ${arah}`);
}
gerak("utara");
// gerak("atas"); // Error! bukan salah satu literal yang diizinkan
enum Peran {
Admin,
Editor,
Pembaca,
}
const peranSaya: Peran = Peran.Editor;
console.log(peranSaya); // 1, enum default dimulai dari angka 0
Praktikum
Buat literal type union TingkatUrgensi berisi "rendah", "sedang", dan "tinggi". Buat enum StatusTugas dengan anggota Baru, Dikerjakan, dan Selesai. Buat fungsi laporTugas(urgensi: TingkatUrgensi, status: StatusTugas): void yang mencetak keduanya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau nilainya cukup diketahui SAAT MENULIS KODE dan jumlahnya sedikit-tetap (mis. arah mata angin), literal type union sering lebih ringan dibanding enum — enum lebih cocok kalau kamu butuh nilai itu juga dipakai sebagai objek runtime yang bisa di-iterasi.