TypeScript Menang. Inilah yang Kita Dapatkan.
Debat telah berakhir. Sebagian besar proyek frontend baru menggunakan TypeScript secara default. Orang-orang tidak lagi berdebat tentang apakah akan mengadopsinya atau tidak.
Nilai sebenarnya bukan sekadar menangkap kesalahan ketik. Nilainya jauh lebih dalam daripada sekadar alasan awal penggunaannya.
Tipe menyediakan dokumentasi yang tidak pernah usang. Sebuah tanda tangan fungsi (function signature) memberi tahu Anda dengan tepat apa yang dibutuhkan oleh suatu potongan kode dan apa yang dikembalikannya. Jika seorang pengembang menambahkan opsi baru ke dalam union type, compiler akan memaksa Anda untuk memperbarui setiap bagian kode Anda. Komentar bisa usang. Tipe tidak.
Refactoring berubah dari tugas yang menakutkan menjadi tugas yang aman. Dalam kode tanpa tipe, mengubah nama sebuah field terasa seperti berjudi. Di TypeScript, Anda mengubah tipenya dan compiler akan memberi Anda daftar setiap baris yang rusak. Ini menghilangkan rasa takut untuk menyentuh kode lama.
Tipe juga meningkatkan hasil kerja Anda dengan AI.
Saat Anda meminta AI untuk mengedit JavaScript tanpa tipe, AI akan menebak strukturnya. Hal ini menyebabkan kesalahan yang berujung pada error di produksi. Dalam TypeScript, tipe bertindak sebagai spesifikasi. AI mengetahui aturannya. Jika AI melakukan kesalahan, compiler akan segera menangkapnya. Tipe mengubah "kode yang sekadar masuk akal" menjadi "kode yang terbukti benar."
Tipe tidak memperlambat Anda. Dalam alur kerja AI, tipe justru mempercepat Anda. Tipe bertindak sebagai pembatas sehingga Anda dapat mempercayai kode yang dihasilkan tanpa harus memeriksa setiap baris secara manual.
Tulis tipe Anda dengan niat yang jelas:
• Gunakan union alih-alih banyak boolean. Status seperti "loading" | "error" | "ready" mencegah kondisi yang mustahil.
• Beri nama tipe domain Anda. Menggunakan "type Cents = number" membuat niat Anda menjadi jelas.
• Hindari "any". Gunakan "unknown" dan persempit tipe Anda sebagai gantinya. "any" menghancurkan jaring pengaman Anda.
• Biarkan inferensi bekerja. Anda tidak perlu memberi label pada segalanya. Beri label pada tanda tangan fungsi dan API yang diekspor, lalu biarkan sisanya mengalir.
TypeScript mengubah codebase menjadi kumpulan kontrak yang dipaksakan. Kontrak-kontrak ini memungkinkan refactoring tanpa rasa takut dan bantuan AI yang andal.
Kita mulai menggunakan tipe untuk menghentikan bug. Kita terus menggunakannya karena tipe adalah fondasi untuk segalanya.
Sumber: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-12m8
