TypeScript 7.0 Beta dirilis - TS sekitar 10x lebih cepat berkat porting native ke Go
- Implementasi native baru yang mem-port compiler TypeScript yang ada ke Go
- Ditekankan bahwa meski masih “beta”, ini sudah cukup stabil untuk langsung dicoba dalam pekerjaan sehari-hari dan CI
- Codebase baru ini bukan penulisan ulang (
rewrite), melainkan porting sistematis dari implementasi yang ada
- Logika type checking secara struktural sama dengan TypeScript 6.0
- Performa kadang sekitar 10x lebih cepat dibanding TypeScript 6.0
- Berdasarkan performa kode native + paralelisasi memori bersama
- Sudah digunakan pada codebase berjuta-juta LOC, baik internal maupun eksternal Microsoft
- Telah diuji lebih dulu bersama Bloomberg, Canva, Figma, Google, Linear, Notion, Slack, Vercel, dan lainnya
- Bukan hanya CLI, pengalaman editor juga ditingkatkan agar lebih ringan dan cepat
Cara menggunakan
- Saat ini diinstal sebagai paket terpisah
npm install -D @typescript/native-preview@beta
- Jalankan
tsgo alih-alih tsc yang lama
- Versi stabil nantinya akan kembali didistribusikan melalui paket
typescript dan entry point tsc
Digunakan berdampingan dengan TypeScript 6.0
- 7.0 Beta disediakan sebagai
@typescript/native-preview + tsgo
tsc yang ada dan tsgo bisa dijalankan berdampingan untuk dibandingkan
- Pada versi stabil, TS7 akan kembali menggunakan nama
tsc
- Paket
@typescript/typescript6 untuk kompatibilitas TS6 juga disediakan
- Tool yang ada dan bergantung pada TypeScript API untuk sementara dapat tetap dikonfigurasi memakai API TS6
Batasan penting
- 7.0 Beta sudah mendekati siap produksi, tetapi belum memiliki programmatic API yang stabil
- API yang stabil ditargetkan paling cepat setelah TypeScript 7.1, dalam beberapa bulan ke depan
- Tool/plugin yang bergantung langsung pada TypeScript API perlu berhati-hati saat beralih
Paralelisasi
- Beberapa tahap seperti parsing, type checking, dan emit diparalelkan
- Ditambahkan opsi
--checkers untuk mengatur jumlah worker type checking
- Ditambahkan opsi
--builders untuk memparalelkan build project reference
- Ditambahkan opsi
--singleThreaded untuk eksekusi single-thread
- Dampaknya besar pada codebase besar dan monorepo, tetapi menaikkan tingkat paralelisme juga bisa meningkatkan penggunaan memori
Kompatibilitas berdasarkan TypeScript 6.0
- TypeScript 7.0 menargetkan kompatibilitas dengan perilaku type checking/CLI TypeScript 6.0
- Kode yang clean compile di TS6 ditargetkan akan ter-compile sama di TS7
- Namun, default baru TS6 dan pembersihan fitur deprecated juga ikut diterapkan
- Perubahan default seperti
strict, module, rootDir, types, dan lainnya dapat terasa pada proyek yang sudah ada
- Khususnya perubahan
rootDir dan types perlu diperiksa saat migrasi
- Untuk proyek yang memakai target/modul lama atau opsi deprecated, disarankan lebih dulu melewati transisi ke TS6
Perubahan JavaScript/JSDoc
- Dukungan JS dirapikan ulang agar lebih konsisten dengan cara analisis file TypeScript
- Penanganan khusus untuk sebagian sintaks gaya JSDoc/Closure dan pola JS lama dihapus
- Codebase berbasis JS + JSDoc perlu diperiksa secara terpisah
Dukungan editor
- Tersedia ekstensi TypeScript Native Preview untuk VS Code
- Karena berbasis fondasi yang sama dengan CLI, peningkatan performa yang sama juga hadir di editor
- Mendukung auto-import, hover, inlay hints, code lens, JSX linked editing, dan lainnya
- Karena berbasis LSP, ini mudah dimanfaatkan juga di editor/tool modern lainnya
Rencana ke depan
- Implementasi
--watch yang lebih efisien akan hadir
- Pekerjaan untuk declaration emit parity pada file JS akan dilakukan
- Kesenjangan fitur editor akan dilengkapi
- Programmatic API yang stabil hadir setelah TypeScript 7.1
- Versi stabil TypeScript 7.0 ditargetkan dalam sekitar 2 bulan
- RC dijadwalkan dirilis beberapa minggu sebelumnya
Belum ada komentar.