TypeScript - Simbol: Panduan untuk Pemula

Hai sana, super bintang coding masa depan! Hari ini, kita akan memulai perjalanan yang menarik ke dalam dunia simbol TypeScript. Jangan khawatir jika Anda belum pernah memesan sebelumnya – saya akan menjadi panduan ramah Anda, dan kita akan menjelajahi topik ini langkah demi langkah. Jadi, ambil secangkir minuman favorit Anda, dan mari kita masuk ke dalamnya!

TypeScript - Symbols

Apa Itu Simbol?

Sebelum kita masuk ke hal-hal teknis, mari kita mengerti apa itu simbol. Bayangkan Anda memiliki sebuah peti Harta Karun, dan Anda memerlukan kunci unik untuknya. Dalam TypeScript, simbol adalah seperti kunci unik itu – mereka adalah pengidentifikasi khusus, satu-of-a-kind yang Anda bisa gunakan dalam kode Anda.

Sintaks: Bagaimana Membuat Simbol

Membuat simbol adalah sama mudahnya membuat sandwich (mungkin bahkan lebih mudah!). Ini adalah cara Anda melakukannya:

let mySymbol = Symbol();

Itu saja! Anda baru saja membuat simbol pertama Anda. Tetapi tunggu, ada lagi! Anda juga dapat memberi deskripsi ke simbol Anda:

let namedSymbol = Symbol("Ini adalah simbol khusus saya");

Pertimbangkan deskripsi ini sebagai tag nama untuk simbol Anda. Itu tidak mengganggu keunikan simbol, tetapi itu bisa membantu Anda mengidentifikasi itu nanti.

Sebuah Latihan Kecil

Mari kita buat dua simbol dan bandingkan mereka:

let symbol1 = Symbol();
let symbol2 = Symbol();

console.log(symbol1 === symbol2); // Output: false

Meskipun kedua simbol tersebut dibuat tanpa deskripsi, mereka tetap unik. Itu seperti kembar – mereka mungkin terlihat sama, tetapi mereka adalah individu yang berbeda!

Simbol Adalah Unik dan Tak Bisa Diubah

Sekarang, mari bicarakan dua kata besar: unik dan tak bisa diubah.

Unik

Setiap simbol yang Anda buat adalah satu-of-a-kind, seperti salju. Bahkan jika Anda membuat dua simbol dengan deskripsi yang sama, mereka tetap berbeda:

let sym1 = Symbol("mySymbol");
let sym2 = Symbol("mySymbol");

console.log(sym1 === sym2); // Output: false

Tak Bisa Diubah

Setelah Anda membuat simbol, Anda tidak dapat mengubahnya. Itu seperti mengukir sesuatu di batu – itu ada untuk selamanya.

let immutableSymbol = Symbol("Saya tidak bisa diubah");
// Tidak ada cara untuk mengubah immutableSymbol!

Simbol Sebagai Kunci untuk Properti Objek

Salah satu hal yang paling menarik tentang simbol adalah bahwa Anda dapat menggunakannya sebagai kunci untuk properti objek. Itu seperti memiliki sebuah kompartemen rahasia di peti Harta Karun Anda yang hanya Anda tahu!

let specialKey = Symbol("kompartemenRahasia");

let treasureChest = {
[specialKey]: "Harta karun tersembunyi!",
gold: 100,
silver: 200
};

console.log(treasureChest[specialKey]); // Output: "Harta karun tersembunyi!"
console.log(treasureChest.gold); // Output: 100

Dalam contoh ini, specialKey adalah simbol yang kita gunakan untuk mengakses properti rahasia objek treasureChest. Properti biasa seperti gold berfungsi biasa, tetapi kunci simbol kita menambahkan lapisan keunikan tambahan.

Simbol dengan Statement Switch

Simbol juga dapat digunakan dalam statement switch. Itu seperti memiliki sebuah kunci khusus yang hanya membuka untuk kunci spesifik:

let actionSymbol = Symbol("action");

switch (actionSymbol) {
case Symbol("action"):
console.log("Ini tidak akan dicatat");
break;
case actionSymbol:
console.log("Ini akan dicatat");
break;
default:
console.log("Kasus default");
}

Ingat, meskipun kita memiliki Symbol("action") dalam kasus pertama, itu bukanlah yang sama seperti actionSymbol. Setiap simbol adalah unik!

Simbol Unik

TypeScript juga memiliki konsep yang disebut "simbol unik". Ini adalah simbol yang sangat khusus – mereka adalah simbol yang TypeScriptanggap memiliki jenis yang sepenuhnya unik:

const uniqueSymbol: unique symbol = Symbol("Saya unik!");

// Ini berfungsi:
let symVar1: typeof uniqueSymbol = uniqueSymbol;

// Ini tidak berfungsi:
// let symVar2: unique symbol = Symbol("Saya juga unik!");
// Kesalahan: Variabel yang jenisnya 'unique symbol' harus 'const'.

Simbol unik harus dideklarasikan dengan const, dan mereka tidak dapat diciptakan kembali. Mereka seperti edisi terbatas collectible – sekali mereka hilang, mereka hilang!

Metode untuk Bekerja dengan Simbol

Marilah kita lihat beberapa metode yang berguna untuk bekerja dengan simbol:

Metode Deskripsi Contoh
Symbol.for() Membuat simbol dalam registri simbol global let globalSym = Symbol.for("myGlobalSymbol");
Symbol.keyFor() Mengambil kunci dari simbol dalam registri simbol global let key = Symbol.keyFor(globalSym);
Object.getOwnPropertySymbols() Mengembalikan array dari semua properti simbol yang ditemukan dalam objek tertentu let symbols = Object.getOwnPropertySymbols(myObject);

Berikut adalah contoh cepat tentang bagaimana menggunakan metode ini:

let globalSym = Symbol.for("myGlobalSymbol");
console.log(Symbol.keyFor(globalSym)); // Output: "myGlobalSymbol"

let obj = {
[Symbol("key1")]: "value1",
[Symbol("key2")]: "value2"
};

console.log(Object.getOwnPropertySymbols(obj).length); // Output: 2

Dan itu adalah! Anda baru saja menyelesaikan kursus cepat dalam simbol TypeScript. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba konsep ini dalam kode Anda sendiri. Siapa tahu? Anda mungkin saja membuka beberapa superpower coding di jalannya!

Happy coding, future TypeScript wizard! ?‍♂️✨

Credits: Image by storyset