- Pada 2023, PR refaktor di repositori Svelte yang beralih ke kode berbasis JSDoc menarik perhatian para skeptis TypeScript
- Pihak Svelte menjelaskan bahwa ini bukan sikap anti-TypeScript, melainkan bagian dari ketergantungan berkelanjutan pada TypeScript
- Artikel ini menekankan bahwa JSDoc dan TypeScript bukanlah dua hal yang berseberangan, melainkan JSDoc itu sendiri merupakan bagian dari TypeScript
- TypeScript berperan sebagai mesin IntelliSense, yang menangani interpretasi komentar JSDoc sekaligus fitur autocompletion kode
- Tanpa tahap build, JSDoc menyediakan kemampuan analisis statis yang sama, dan dalam proyek JS modern pada praktiknya menjalankan peran yang sama dengan TypeScript
PR Svelte dan latar belakang kontroversi
- Pada Mei 2023, PR refaktor internal di repositori Svelte naik ke halaman depan Hacker News
- PR ini mengubah deklarasi tipe di file
.ts menjadi komentar JSDoc di file .js
- Sebagian orang menafsirkan ini sebagai penolakan terhadap manfaat TypeScript
- Pendiri Svelte, Rich Harris, menjelaskan langsung di HN bahwa “ini bukan anti-TypeScript”
- Ia menyebut komitmen Svelte terhadap TypeScript tetap sangat kuat
- Setelah kejadian ini, bermunculan banyak tulisan perbandingan “TypeScript vs JSDoc”, dan pandangan yang menilai JSDoc sebagai “TypeScript tanpa tahap build” pun semakin meluas
Asal-usul dan hakikat TypeScript
- Pada akhir 2000-an hingga awal 2010-an, JavaScript dipandang sebagai bahasa yang kurang memiliki autocompletion dan keamanan tipe
- Pengembang Microsoft merespons dengan menggunakan ScriptSharp untuk mengubah kode C# menjadi JS
- Dalam latar belakang seperti itu, TypeScript lahir, dan pada dasarnya berawal sebagai alat build untuk meningkatkan pengembangan JS
TypeScript adalah IntelliSense
- TypeScript bukan sekadar bahasa, tetapi juga berperan sebagai mesin IntelliSense
- Bahkan tanpa memakai file
.ts, fitur seperti autocompletion kode, informasi parameter, dan penelusuran simbol disediakan oleh language service TypeScript
- Di sebagian besar editor, saat menulis kode JS pun layanan TypeScript berjalan di backend
TypeScript adalah JSDoc
- Language service TypeScript juga digunakan untuk menafsirkan komentar JSDoc
- CHANGELOG TypeScript sering memuat penambahan fitur yang berkaitan dengan JSDoc
- Proyek berbasis JSDoc juga bisa dikonfigurasi dengan
tsconfig.json, dan pemeriksaan tipe dapat dijalankan dengan perintah tsc
- Karena itu, pengembang yang memakai JSDoc pada dasarnya juga sudah menggunakan TypeScript
Pengalaman dengan proyek berbasis JSDoc
- Penulis membagikan pengalaman menulis ulang frontend proyek lama dengan komentar tipe berbasis JSDoc
- Selain fitur runtime seperti enum, sebagian besar ekspresi TypeScript dapat diwujudkan dengan JSDoc
- Generic memang punya sintaks yang agak rumit, tetapi justru mendorong pemanfaatan inferensi tipe secara lebih aktif
- Dalam proyek JSDoc, saat mengklik fungsi, pengembang bisa langsung berpindah ke kode sebenarnya, sehingga pengalaman pengembangan meningkat
- Ekosistem alat TypeScript juga bisa digunakan ulang dalam proyek JSDoc
- Contoh: library yang menghasilkan tipe dari skema OpenAPI atau GraphQL juga dapat menghasilkan tipe dalam bentuk komentar JSDoc
Kesimpulan dan contoh tambahan
- JSDoc bukan alternatif bagi TypeScript, melainkan berbagi sistem analisis statis yang sama
- Dengan melewati tahap build, JSDoc tetap memberikan stabilitas tipe yang setara
- Sebagai tambahan, disebut pula contoh proyek webpack yang dimigrasikan ke JSDoc
- Sebagai pakar TypeScript, penulis dengan tegas menyatakan posisi bahwa “JSDoc adalah TypeScript”
Belum ada komentar.