TypeScript Menang. Inilah yang Kita Dapatkan.

Tidak ada lagi yang memperdebatkan penggunaan TypeScript. Proyek frontend baru menggunakannya secara default. Debatnya sudah berakhir. TypeScript menang.

Menang adalah bagian yang membosankan. Nilai sebenarnya adalah apa yang dilakukan tipe (types) terhadap alur kerja Anda. Ini lebih dari sekadar menangkap kesalahan ketik.

Tanda tangan fungsi (function signature) bertindak sebagai dokumentasi. Ia tidak pernah kedaluwarsa. Jika kode berubah, compiler akan langsung menggagalkan proses build.

Lihatlah sebuah fungsi yang menjadwalkan pengingat. Anda tahu apa yang dibutuhkannya dan apa yang dikembalikannya tanpa membaca satu pun komentar. Anda melihat opsi yang tepat untuk saluran komunikasi. Jika Anda menambahkan saluran baru, compiler akan memberi tahu Anda setiap tempat di mana Anda perlu memperbarui kode Anda. Sebuah komentar hanya akan diam di sana dan menjadi salah.

Refactoring menjadi aman. Dalam kode tanpa tipe (untyped code), mengubah nama field terasa menakutkan. Anda mencari string dan berharap yang terbaik. Di TypeScript, Anda mengubah tipenya. Compiler memberi Anda daftar semua hal yang rusak. Refactoring tidak lagi berisiko. Ia menjadi tugas yang aman.

Tipe juga membantu Anda menggunakan AI.

Saat Anda meminta AI untuk mengedit JavaScript tanpa tipe, ia akan menebak bentuk objeknya. Saat Anda menggunakan TypeScript, tipe tersebut adalah spesifikasinya. AI tahu persis apa yang diizinkan. Kesalahan muncul sebagai error kompilasi, bukan crash di produksi. Tipe mengubah kode yang dihasilkan menjadi kode yang sesuai.

Orang-orang dulu mengatakan bahwa tipe memperlambat Anda. Dalam alur kerja AI, tipe justru mempercepat Anda. Mereka bertindak sebagai pagar pengaman (guardrails). Anda dapat menerima kode yang dihasilkan dengan percaya diri daripada harus memeriksa setiap baris secara manual.

Tulis tipe yang lebih baik dengan aturan-aturan ini:

  • Gunakan union alih-alih banyak boolean. Status seperti "loading" | "error" | "ready" lebih baik daripada tiga flag terpisah.
  • Beri nama tipe domain Anda. Menggunakan tipe seperti Cents alih-alih angka biasa menunjukkan maksud Anda.
  • Hindari any. Gunakan unknown dan persempit cakupannya. Kata kunci any menghancurkan jaring pengaman Anda.
  • Biarkan inferensi bekerja. Jangan beri anotasi pada segalanya. Beri anotasi pada batas-batas (boundaries) Anda dan biarkan sisanya mengalir.

TypeScript mengubah codebase menjadi kontrak eksplisit. Kontrak ini memungkinkan refactoring tanpa rasa takut dan bantuan AI yang andal.

Kami mulai menggunakan tipe untuk menghentikan bug. Kami terus menggunakannya karena tipe adalah fondasi untuk segala hal lainnya.

Sumber: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-53lo

Komunitas belajar opsional: https://t.me/GyaanSetuAi