Cara Saya Menjual TypeScript (Sales Pitch)
(2ality.com)- TypeScript adalah bahasa yang menambahkan informasi tipe ke JavaScript
- Informasi tipe dihapus sebelum dijalankan oleh mesin JS → artinya, diperlukan langkah tambahan dalam proses penulisan dan deployment
- Apakah langkah tambahan itu sepadan? → Sangat sepadan
Pelengkapan otomatis dan deteksi error saat mengedit kode
- TypeScript menyediakan pelengkapan otomatis dan deteksi error saat menulis kode
- Contoh 1: typo, tipe yang salah, argumen yang hilang
- Menampilkan error saat mengakses properti yang tidak ada. Juga tidak muncul dalam pelengkapan otomatis
- Menampilkan error saat memanggil method dengan tipe yang salah
- Menampilkan error jika argumen wajib tidak diberikan
- Menampilkan error jika argumen dengan tipe yang salah dikirimkan
- Contoh 2: error pada nilai balik fungsi
- Menampilkan error jika nilai balik tidak cocok dengan tipe yang didefinisikan
- Misalnya, jika nilai balik adalah
string[]tetapi tipe balik didefinisikan sebagaistring, maka akan terjadi error
- Contoh 3: error dalam penanganan properti opsional
- Jika properti opsional digunakan sebagai nilai balik dan tipenya tidak cocok, error akan ditampilkan
- Contoh 4: ada
caseyang hilang dalam pernyataanswitch- Jika tidak semua
casedalam pernyataanswitchditangani, akan terjadi error - Error juga terjadi jika persyaratan bahwa nilai yang tersisa harus bertipe
neverdilanggar
- Jika tidak semua
- Contoh 5: error saat menangani kasus tertentu dalam kode
- Saat melakukan percabangan berdasarkan nilai tertentu, kasus yang salah akan memunculkan error
- Misalnya, mengakses properti yang tidak ada pada tipe objek tertentu akan menyebabkan error
Menentukan tipe parameter fungsi dan tipe balik → berperan sebagai dokumentasi yang baik
- TypeScript memungkinkan kita menentukan tipe parameter dan tipe balik fungsi
- Meningkatkan pemahaman kode dan kemudahan pemeliharaan
- Menjelaskan dengan jelas tipe argumen dan nilai balik sebuah fungsi
Memperkuat refactoring kode
- TypeScript membantu melakukan refactoring kode dengan lebih aman
- Saat nama method diubah, perubahan itu dapat diterapkan dengan aman ke semua kode yang terhubung
- Hubungan antarbagian kode dapat dipahami dengan lebih akurat
Menggunakan TypeScript menjadi lebih mudah
- Menjalankan dan mengompilasi TypeScript kini lebih mudah
- TypeScript dapat dijalankan langsung di platform seperti Node.js, Deno, dan Bun
- Bundler seperti Vite mendukung TypeScript secara bawaan
- Diperkenalkannya teknik type stripping → hanya menghapus informasi tipe tanpa transformasi lain
- Distribusi paket npm juga membaik → mendukung pembuatan otomatis file JavaScript dan deklarasi tipe
Kekurangan TypeScript
- Ada kurva belajar → lebih kompleks daripada JavaScript
- Masalah dapat muncul jika beberapa paket npm tidak memiliki definisi tipe atau definisinya salah
- Konfigurasi
tsconfig.jsonbisa terasa rumit- Masalah ini bisa dikurangi dengan menggunakan pengaturan seketat mungkin
- Dengan type stripping yang makin jelas, peran
tsconfig.jsonmenjadi lebih sederhana
FAQ TypeScript
Apakah kode TypeScript terasa berat?
- TypeScript memungkinkan penulisan kode dengan definisi tipe minimal berkat type inference
- Tetap berguna tanpa anotasi tipe yang rumit
Apakah TypeScript mencoba mengubah JavaScript menjadi C# atau Java?
- Pada awalnya, TypeScript menambahkan hal-hal seperti class, module, dan enum untuk melengkapi kekurangan JavaScript
- Sekarang, TypeScript dikembangkan agar selaras dengan standar ECMAScript
- Fitur yang tidak ada di JavaScript tidak akan ditambahkan ke TypeScript
Apakah TypeScript hanya mendukung pemrograman berorientasi objek (OOP)?
- TypeScript juga mendukung pola functional programming dengan baik
- Sebagai contoh,
discriminated unionsering digunakan dalam functional programming
Apakah definisi tipe yang rumit wajib dipelajari?
- Dalam kebanyakan penggunaan TypeScript, definisi tipe sederhana sudah cukup
- Definisi tipe yang rumit berguna saat menulis library, tetapi tidak diperlukan dalam penggunaan umum
Berapa lama waktu yang dibutuhkan untuk belajar TypeScript?
- Konsep dasarnya bisa dipelajari dalam satu hari
- Menulis dan debugging kode sederhana bisa dilakukan mulai hari berikutnya
- Tipe yang lebih rumit dan fitur lanjutan bisa dipelajari secara bertahap
Bacaan selanjutnya
- What is TypeScript?
- Tackling TypeScript (gratis)
4 komentar
Ada manfaat dari strong typing, dan hal yang sama juga berlaku di C++.
Rasanya seperti mengembangkan sambil merem lalu tiba-tiba bisa melihat ketika beralih dari JavaScript ke TypeScript. Rasa aman dari type, autocomplete, dan kombinasinya dengan Copilot.
Tim-tim di perusahaan kami sempat menjalankan proyek sambil bilang JavaScript saja sudah cukup, tetapi sekarang semuanya sedang beralih ke TypeScript.
Bukan untuk menggantikan JavaScript, melainkan untuk melengkapinya; sepertinya inilah faktor keberhasilan TypeScript mengalahkan Dart. Saya benar-benar merasa beruntung telah mempelajarinya.