TypeScript Telah Menang. Inilah Apa Yang Kita Perolehi.

Tiada lagi sesiapa yang berdebat tentang penggunaan TypeScript. Projek frontend baharu menggunakannya secara lalai. Perdebatan telah tamat. TypeScript telah menang.

Kemenangan hanyalah bahagian yang membosankan. Nilai sebenar adalah apa yang jenis (types) lakukan untuk aliran kerja anda. Ia lebih daripada sekadar mengesan kesilapan taip.

Tandatangan fungsi (function signature) bertindak sebagai dokumentasi. Ia tidak akan menjadi lapuk. Jika kod berubah, pengkompil akan menggagalkan binaan (build) dengan serta-merta.

Lihat pada fungsi yang menjadualkan peringatan. Anda tahu apa yang diperlukan dan apa yang dikembalikan tanpa perlu membaca satu pun komen. Anda dapat melihat pilihan tepat untuk saluran komunikasi. Jika anda menambah saluran baharu, pengkompil akan memberitahu anda setiap tempat yang perlu dikemas kini dalam kod anda. Komen pula hanya akan terbiar di situ dan menjadi tidak tepat.

Refactoring menjadi selamat. Dalam kod tanpa jenis (untyped code), menamakan semula medan (field) adalah menakutkan. Anda mencari rentetan (strings) dan berharap yang terbaik. Dalam TypeScript, anda menukar jenisnya. Pengkompil memberikan anda senarai semua perkara yang rosak. Refactoring tidak lagi berisiko. Ia menjadi tugasan yang selamat.

Jenis juga membantu anda menggunakan AI.

Apabila anda meminta AI untuk menyunting JavaScript tanpa jenis, ia akan meneka bentuk objek tersebut. Apabila anda menggunakan TypeScript, jenis tersebut adalah spesifikasinya. AI tahu dengan tepat apa yang dibenarkan. Ralat akan muncul sebagai ralat pengkompil dan bukannya kegagalan (crash) semasa produksi. Jenis menukarkan kod yang dijana kepada kod yang sesuai.

Orang dahulu sering berkata bahawa jenis memperlahankan anda. Dalam aliran kerja AI, jenis mempercepatkan anda. Ia bertindak sebagai pagar penghadang (guardrails). Anda boleh menerima kod yang dijana dengan yakin tanpa perlu menyemak setiap baris secara manual.

Tulis jenis yang lebih baik dengan peraturan ini:

  • Gunakan union berbanding pelbagai boolean. Status seperti "loading" | "error" | "ready" adalah lebih baik daripada tiga flag yang berasingan.
  • Namakan jenis domain anda. Menggunakan jenis seperti Cents berbanding nombor biasa menunjukkan niat anda.
  • Elakkan any. Gunakan unknown dan kecilkan skopnya (narrow it down). Kata kunci any memusnahkan jaring keselamatan anda.
  • Biarkan inferens berfungsi. Jangan letakkan anotasi pada segalanya. Letakkan anotasi pada sempadan (boundaries) anda dan biarkan selebihnya mengalir.

TypeScript menukarkan pangkalan kod (codebases) kepada kontrak yang eksplisit. Kontrak ini membolehkan refactoring tanpa rasa takut dan bantuan AI yang boleh dipercayai.

Kami mula menggunakan jenis untuk menghentikan pepijat (bugs). Kami terus menggunakannya kerana ia adalah asas kepada segala-galanya yang lain.

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

Optional learning community: https://t.me/GyaanSetuAi