TypeScript - Enums: Panduan untuk Pemula
Hai, para pemrogram masa depan! Hari ini, kita akan masuk ke dunia yang menakjubkan dari TypeScript Enums. Jangan khawatir jika Anda belum pernah mengoding sebelumnya – saya akan menjadi panduan Anda yang ramah dalam perjalanan ini, seperti yang telah saya lakukan untuk ribuan siswa selama tahun-tahun mengajar saya. Jadi, mari kita mulai!
Apa Itu Enums?
Sebelum kita melompat ke jenis-jenis Enums yang berbeda, mari kita mengerti apa itu Enums. Bayangkan Anda sedang mengatur lemari pakaian Anda. Anda mungkin memiliki kategori-kategori yang berbeda untuk pakaian Anda: kaos, celana, sepatu, dll. Enums di TypeScript seperti kategori-kategori ini – mereka membantu kita mengelompokkan nilai-nilai yang terkait bersama-sama dan memberikan mereka nama yang bermakna.
Enums Numerik
Enums Numerik adalah jenis Enums yang paling umum di TypeScript. Mereka seperti memberikan nomor ke superhero favorit Anda.
enum Superheroes {
Superman,
Batman,
WonderWoman,
Flash
}
console.log(Superheroes.Superman); // Output: 0
console.log(Superheroes.Batman); // Output: 1
console.log(Superheroes.WonderWoman); // Output: 2
console.log(Superheroes.Flash); // Output: 3
Dalam contoh ini, TypeScript secara otomatis memberikan nomor mulai dari 0. Superman mendapat 0, Batman mendapat 1, dan seterusnya. Itu seperti mereka berbaris untuk foto kelompok, dan kita memberikan mereka nomor berdasarkan posisi mereka!
Tapi apa bila kita ingin memulai dengan nomor yang berbeda? Tidak masalah! Kita juga bisa melakukan itu:
enum Villains {
Joker = 1,
LexLuthor,
Cheetah,
ReverseFlash
}
console.log(Villains.Joker); // Output: 1
console.log(Villains.LexLuthor); // Output: 2
console.log(Villains.Cheetah); // Output: 3
console.log(Villains.ReverseFlash); // Output: 4
Di sini, kita mengatakan kepada TypeScript untuk mulai menghitung dari 1 untuk Joker, dan secara otomatis melanjutkan untuk sisanya.
Enums String
Sekarang, katakanlah Anda tidak suka nomor dan lebih memilih kata. Itu di mana Enums String berguna. Mereka seperti memberikan nama panggilan kepada hewan peliharaan Anda!
enum PetNames {
Dog = "BUDDY",
Cat = "WHISKERS",
Fish = "BUBBLES",
Bird = "TWEETY"
}
console.log(PetNames.Dog); // Output: "BUDDY"
console.log(PetNames.Cat); // Output: "WHISKERS"
console.log(PetNames.Fish); // Output: "BUBBLES"
console.log(PetNames.Bird); // Output: "TWEETY"
Dengan Enums String, kita harus memberikan nilai ke setiap anggota. Itu seperti memastikan setiap hewan peliharaan Anda mengetahui nama panggilannya yang khusus!
Enums Heterogen
kadang-kadang, kehidupan tidak hanya tentang nomor atau hanya tentang string – itu adalah campuran! Enums Heterogen seperti kotak cokelat berbagai macam – Anda mendapat sedikit dari segala sesuatu.
enum MixedBag {
Number = 1,
String = "STRING",
AnotherNumber = 2
}
console.log(MixedBag.Number); // Output: 1
console.log(MixedBag.String); // Output: "STRING"
console.log(MixedBag.AnotherNumber); // Output: 2
Meskipun ini dimungkinkan, biasanya disarankan untuk tetap menggunakan baik semua nomor atau semua string dalam Enum untuk konsistensi.
Enums di Waktu Eksekusi
Salah satu hal menakjubkan tentang Enums adalah mereka ada di waktu eksekusi. Ini berarti Anda bisa menggunakan mereka di kode Anda seperti objek lainnya!
enum Fruits {
Apple,
Banana,
Orange
}
function getFruitName(fruit: Fruits): string {
return Fruits[fruit];
}
console.log(getFruitName(Fruits.Apple)); // Output: "Apple"
console.log(getFruitName(Fruits.Banana)); // Output: "Banana"
Di sini, kita menggunakan Enum seperti objek biasa. Itu seperti memiliki kamus magis yang dapat mentranslate nomor ke nama buah!
Enums di Waktu Kompilasi
Enums juga menonjol di waktu kompilasi. Mereka membantu TypeScript menangkap kesalahan sebelum kode Anda bahkan dijalankan!
enum DaysOfWeek {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
let day: DaysOfWeek = DaysOfWeek.Monday;
day = DaysOfWeek.Friday; // Ini baik
// day = "Monday"; // Kesalahan: Tipe '"Monday"' tidak dapat diassign ke tipe 'DaysOfWeek'.
TypeScript akan memberikan Anda kesalahan jika Anda mencoba menset nilai yang bukan bagian dari Enum. Itu seperti memiliki penjaga keras di klub yang hanya membolehkan hari-hari minggu masuk!
Enums Ambien
Enums Ambien sedikit istimewa. Mereka digunakan saat Anda memberitahu TypeScript tentang Enums yang ada di tempat lain dalam kode Anda atau dalam pustaka yang Anda gunakan.
declare enum ExternalEnum {
A = 1,
B,
C = 2
}
Kata kunci declare
seperti mengatakan, "Hey TypeScript, percayalah, Enum ini ada di tempat lain dalam kode." Itu berguna saat Anda bekerja dengan kode yang tidak ditulis dalam TypeScript.
Objek vs. Enums
Anda mungkin bertanya-tanya, "Mengapa tidak hanya menggunakan objek?" Well, Enums memiliki beberapa keunggulan:
// Menggunakan objek
const ColorObject = {
Red: 'RED',
Green: 'GREEN',
Blue: 'BLUE'
} as const;
// Menggunakan Enum
enum ColorEnum {
Red = 'RED',
Green = 'GREEN',
Blue = 'BLUE'
}
// Dengan objek, Anda perlu menggunakan penegasan tipe
let objColor: keyof typeof ColorObject = 'Red';
// Dengan Enums, itu lebih mudah
let enumColor: ColorEnum = ColorEnum.Red;
Enums menyediakan keamanan tipe yang lebih baik dan lebih ringkas dalam banyak kasus.
Menggunakan Enum sebagai Parameter Fungsi
Enums sangat cocok untuk parameter fungsi. Mereka membuat kode Anda lebih mudah dibaca dan mencegah kesalahan:
enum Sizes {
Small,
Medium,
Large
}
function orderCoffee(size: Sizes): string {
switch(size) {
case Sizes.Small:
return "Here's your small coffee!";
case Sizes.Medium:
return "One medium coffee coming right up!";
case Sizes.Large:
return "Large coffee, extra caffeine!";
default:
return "We don't have that size!";
}
}
console.log(orderCoffee(Sizes.Medium)); // Output: "One medium coffee coming right up!"
// console.log(orderCoffee("Venti")); // Kesalahan: Argumen tipe '"Venti"' tidak dapat diassign ke parameter tipe 'Sizes'.
Dengan menggunakan Enum untuk parameter ukuran, kita memastikan bahwa hanya ukuran yang valid yang dapat diberikan ke fungsi. Itu seperti memiliki menu dengan opsi tetap – tanpa kebingungan tentang ukuran mana yang tersedia!
Metode Enums
Berikut adalah tabel metode yang berguna untuk bekerja dengan Enums:
Metode | Deskripsi | Contoh |
---|---|---|
Object.keys() |
Dapatkan semua kunci Enum | Object.keys(Sizes) |
Object.values() |
Dapatkan semua nilai Enum | Object.values(Sizes) |
Object.entries() |
Dapatkan pasangan key-value Enum | Object.entries(Sizes) |
Enum[key] |
Dapatkan nilai untuk kunci | Sizes[Sizes.Small] |
Enum[value] |
Dapatkan kunci untuk nilai (untuk Enums numerik) | Sizes[0] |
Metode-metode ini membantu Anda bekerja dengan Enums dalam berbagai cara, seperti mendapatkan semua ukuran yang tersedia atau menemukan nama ukuran dari nilaiannya.
Dan itu saja! Anda baru saja mengambil langkah pertama ke dunia TypeScript Enums. Ingat, programming adalah seperti belajar bahasa baru – itu memerlukan latihan, tapi segera Anda akan menjadi mahir dalam Enum-speak! Terus mengoding, tetap bersemangat, dan jangan lupa untuk bersenang-senang dalam perjalanan. Siapa tahu, mungkin Anda akan membuat Enum untuk rasa es krim favorit Anda berikutnya!
Credits: Image by storyset