TypeScript Tip: Berhenti Pakai any, Mulailah Pakai unknown

Banyak yang bilang TypeScript itu bikin ribet karena “cerewet” soal tipe data. Akhirnya, jalan pintas diambil: pakai any.

Padahal, menggunakan any secara berlebihan itu sama saja dengan kembali ke JavaScript biasa—kita kehilangan seluruh perlindungan dari type checker. Kalau kamu ingin codebase yang lebih secure dan robust, unknown adalah solusinya.

Kenapa unknown lebih aman daripada any?

  1. any adalah “Pintu Terbuka”: Saat kamu pakai any, kamu bisa melakukan apa saja (panggil fungsi, akses properti) tanpa divalidasi. Ini adalah bom waktu buat runtime error.
  2. unknown adalah “Kotak Terkunci”: TypeScript menganggap unknown sebagai tipe yang “ada isinya, tapi kita belum tahu apa”. Kamu nggak bisa melakukan apa-apa ke variabel tersebut sebelum kamu membuktikan tipenya (lewat type guarding).

Coba cek perbandingan simpel ini:

TypeScript

// ❌ Bahaya dengan 'any'
let dataAny: any = "Saya string";
dataAny.push("Bikin Error"); // Lolos saat compile, CRASH saat runtime!

// ✅ Aman dengan 'unknown'
let dataUnknown: unknown = "Saya string";

// dataUnknown.push("Error"); // 🚨 TypeScript langsung protes di sini!

if (typeof dataUnknown === "string") {
    console.log(dataUnknown.length); // ✅ Sekarang aman, TS tahu ini string.
}

Kapan harus pakai unknown? Paling krusial adalah saat menerima data dari luar yang kita nggak kontrol sepenuhnya, seperti:

  • API Response.
  • Input dari user.
  • Data dari library pihak ketiga yang tipenya kurang jelas.

Memang pakai unknown butuh usaha ekstra karena kita harus melakukan pengecekan (typeof, instanceof, atau user-defined type guards). Tapi percaya deh, lebih baik “lelah” sedikit saat menulis kode daripada pusing tujuh keliling nyari bug di production.

Jadi, mari kita buat compiler kita bekerja untuk kita, bukan malah kita akali.

Pernah punya pengalaman buruk gara-gara “any” yang nyelip di codebase? Share ceritanya di kolom komentar ya! 👇


Discover more from Susiloharjo

Subscribe to get the latest posts sent to your email.

Discover more from Susiloharjo

Subscribe now to keep reading and get access to the full archive.

Continue reading