TypeScript Telah Menang. Inilah Apa yang Sebenarnya Kita Perolehi.
Tiada lagi sesiapa yang mempertikaikan penggunaan TypeScript. Projek baharu menggunakannya secara lalai. Perdebatan telah berakhir.
Nilai sebenarnya bukan sekadar mengesan kesilapan menaip. Ia jauh lebih daripada itu.
Tandatangan fungsi bertindak sebagai dokumentasi. Ia tidak akan menjadi lapuk. Jika kod berubah, pengkompil akan menggagalkan proses binaan.
Lihat fungsi ini:
function scheduleReminder(
userId: string,
at: Date,
channel: "email" | "push" | "sms",
): Promise<ReminderId>;
Anda tahu dengan tepat cara untuk memanggilnya. Anda tahu apa yang diperlukan dan apa yang dikembalikannya. Anda tahu saluran tersebut mestilah salah satu daripada tiga rentetan khusus.
Jika anda menambah pilihan "slack" kemudian, pengkompil akan memaksa anda mengemas kini setiap bahagian kod anda. Komen hanya akan menjadi lapuk dan mengelirukan anda.
Dalam kod tanpa jenis (untyped code), menamakan semula medan (field) terasa menakutkan. Anda mencari rentetan dan berharap yang terbaik. Dalam TypeScript, anda menukar jenisnya. Pengkompil memberikan anda senarai tugasan bagi semua perkara yang rosak. Refactoring menjadi selamat.
Jenis juga membantu dengan AI.
Model AI meneka bentuk kod dalam JavaScript. Dalam TypeScript, jenis tersebut adalah spesifikasi. AI tahu apa yang dibenarkan. Kesilapan akan muncul sebagai ralat dan bukannya menyebabkan kegagalan sistem (production crash).
Jenis bertindak sebagai pagar penghadang (guardrails). Ia membolehkan anda menggunakan kod AI dengan yakin tanpa perlu menyemak setiap baris secara manual.
Tulis jenis yang lebih baik dengan peraturan ini:
• Gunakan union berbanding banyak boolean. Status seperti "loading" | "error" | "ready" adalah lebih baik daripada tiga bendera (flags) yang berasingan.
• Namakan jenis domain anda. Gunakan type Cents = number untuk menunjukkan niat.
• Elakkan any. Gunakan unknown dan kecilkan (narrow) jenis tersebut sebagai ganti.
• Biarkan inferens berfungsi. Berikan anotasi pada sempadan anda seperti tandatangan fungsi, tetapi biarkan selebihnya mengalir secara semula jadi.
TypeScript telah mengubah pangkalan kod (codebases) menjadi set kontrak yang dikuatkuasakan. Kontrak ini membolehkan refactoring tanpa rasa takut dan bantuan AI yang boleh dipercayai.
Kita mula menggunakan jenis untuk menghentikan pepijat (bugs). Kita terus menggunakannya kerana ia adalah asas kepada segala-galanya yang lain.
Sumber: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-53lo
