Belajar TypeScript #4: Tipe Data Enum dan Any

Rizki Firmansyah
2 min readAug 24, 2024

--

  1. Tipe Data enum

enum adalah fitur di TypeScript yang digunakan untuk mendefinisikan sekumpulan nilai konstan. Fitur ini memungkinkan pengembang untuk mengelompokkan nilai yang berhubungan dan memberikan nama yang lebih deskriptif untuk nilai tersebut.

Intinya, enum digunakan untuk mempermudah pengelolaan nilai konstan yang memiliki hubungan erat satu sama lain.

enum Direction {
Up,
Down,
Left,
Right
}

const up: Direction = Direction.Up;
const down: Direction = Direction.Down;
const left: Direction = Direction.Left;
const right: Direction = Direction.Right;

console.log(up) // output: 0
console.log(down) // output: 1
console.log(left) // output: 2
console.log(right) // output: 3

Mungkin di antara kalian ada yang bertanya; kenapa tiba-tiba constanta pada contoh di atas memiliki value?

Ketika kita mendefinisikan sebuah enum tanpa memberikan nilai eksplisit, TypeScript secara otomatis akan memberikan nilai numerik sebagai default, dimulai dari angka 0 dan bertambah satu untuk setiap anggota berikutnya. Ini adalah perilaku bawaan enum yang bertipe numerik.

Selain berbasis nilai numerik, enum juga bisa digunakan dengan nilai string:

enum Status {
Active = "ACTIVE",
Inactive = "INACTIVE",
Pending = "PENDING"
}

const currentStatus: Status = Status.Active;

console.log(currentStatus) // output: ACTIVE

Dalam contoh di atas, nilai enum tidak lagi berupa angka, tetapi berupa string yang ditentukan secara eksplisit.

2. Tipe Data any

Tipe data any adalah tipe yang paling fleksibel di TypeScript. Saat kita menggunakan tipe any, kita pada dasarnya mengizinkan variabel untuk menampung nilai dari tipe apa pun, mirip dengan perilaku default JavaScript.

Meskipun memberi kita kebebasan, menggunakan any secara berlebihan dapat menghilangkan sebagian besar keuntungan yang ditawarkan oleh TypeScript.

let randomValue: any = 5;
randomValue = "Hello";
randomValue = true;

// tidak ada error sama sekali

Dalam contoh di atas, variabel randomValue dapat diisi dengan angka, string, atau bahkan boolean. Tipe any memberikan fleksibilitas, tetapi kita juga kehilangan keamanan tipe karena tidak ada pengecekan tipe yang dilakukan oleh TypeScript.

Jadi, kapan waktu yang tepat untuk menggunakan any ?

  • Saat kita memigrasikan kode JavaScript yang tidak memiliki tipe yang jelas ke TypeScript, tipe any dapat digunakan sementara untuk menjaga kompatibilitas.
  • Tipe any bisa juga digunakan ketika kita bekerja dengan API eksternal atau data yang tidak diketahui strukturnya secara rinci.

Sekian untuk rangkuman pembelajaran saya terkait tipe data enum dan any . Tentu saja seri tulisan belajar TypeScript ini masih terus akan berlanjut.

--

--