TypeScript Won. Here is What It Bought Us.

Debat telah berakhir. Pengembang tidak lagi berdebat tentang penggunaan TypeScript. Proyek frontend baru menggunakannya secara default.

Tujuan awalnya adalah untuk menangkap kesalahan ketik sebelum merusak aplikasi Anda. Itu bukanlah manfaat yang sebenarnya. Nilai sebenarnya terletak pada sesuatu yang jauh lebih mendalam.

TypeScript membuat dokumentasi yang tidak pernah usang. Sebuah function signature memberi tahu Anda dengan tepat apa yang dibutuhkan sebuah fungsi dan apa yang dikembalikannya. Jika Anda menambahkan opsi baru ke sebuah tipe, compiler akan menunjukkan setiap tempat di mana Anda perlu memperbarui kode Anda. Sebuah komentar hanya akan diam di sana dan membohongi Anda.

Refactoring menjadi aman. Dalam kode tanpa tipe (untyped code), mengubah nama sebuah field terasa seperti perjudian. Anda mencari string dan berharap yang terbaik. Dalam TypeScript, Anda mengubah tipenya dan compiler memberi Anda daftar tugas dari setiap baris yang rusak. Anda berhenti merasa takut terhadap codebase Anda.

Tipe juga membantu Anda menggunakan AI.

Alat AI yang menebak kode dalam JavaScript itu berbahaya. Ia membuat kesalahan yang menyebabkan error pada produksi. Dalam TypeScript, tipe bertindak sebagai spesifikasi. AI tahu apa yang diperbolehkan. Jika AI membuat kesalahan, compiler akan segera menangkapnya. Tipe mengubah "kode yang tampak masuk akal" menjadi "kode yang benar."

Orang-orang dulu mengatakan bahwa tipe memperlambat Anda. Di dunia AI, tipe justru mempercepat Anda. Tipe 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 unions alih-alih banyak boolean. Status seperti "loading" | "error" | "ready" mencegah status yang mustahil.
  • Beri nama tipe domain Anda. Menggunakan "type Cents = number" membuat maksud Anda jelas.
  • Hindari "any". Gunakan "unknown" dan persempit (narrow it down) sebagai gantinya. "any" merusak jaring pengaman Anda.
  • Biarkan inference bekerja. Anda tidak perlu melabeli segalanya. Beri label pada function signature dan API yang diekspor, lalu biarkan sisanya mengalir.

TypeScript tidak hanya menangkap kesalahan ketik. Ia mengubah codebase menjadi sistem kontrak yang dipaksakan. Kontrak-kontrak ini memungkinkan refactoring tanpa rasa takut dan alat AI yang andal.

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

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