TypeScript Menang. Inilah Manfaat Nyata yang Kita Dapatkan.

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

Nilai sebenarnya bukan sekadar menangkap salah ketik (typo). Jauh lebih dari itu.

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

Lihat fungsi ini:

function scheduleReminder(
  userId: string,
  at: Date,
  channel: "email" | "push" | "sms",
): Promise<ReminderId>;

Anda tahu persis cara memanggilnya. Anda tahu apa yang dibutuhkan dan apa yang dikembalikannya. Anda tahu bahwa channel harus berupa salah satu dari tiga string spesifik tersebut.

Jika Anda menambahkan opsi "slack" nantinya, compiler akan memaksa Anda untuk memperbarui setiap bagian kode Anda. Sebuah komentar hanya akan usang dan menyesatkan Anda.

Dalam kode tanpa tipe (untyped code), mengubah nama field terasa menakutkan. Anda mencari string dan berharap yang terbaik. Di TypeScript, Anda cukup mengubah tipenya. Compiler akan memberi Anda daftar tugas tentang segala sesuatu yang rusak. Refactoring menjadi aman.

Tipe juga membantu dalam penggunaan AI.

Model AI menebak bentuk kode dalam JavaScript. Di TypeScript, tipe adalah spesifikasinya. AI tahu apa yang diperbolehkan. Kesalahan akan muncul sebagai error, bukan sebagai crash di produksi.

Tipe bertindak sebagai pembatas (guardrails). Mereka memungkinkan Anda menggunakan kode AI 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. Gunakan type Cents = number untuk menunjukkan maksudnya. • Hindari any. Gunakan unknown dan persempit (narrow) tipenya sebagai gantinya. • Biarkan inferensi bekerja. Berikan anotasi pada batas-batas seperti signature fungsi, tetapi biarkan sisanya mengalir.

TypeScript mengubah codebase menjadi sekumpulan 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.

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