6 poin oleh dlwocks31 4 jam lalu | Belum ada komentar. | Bagikan ke WhatsApp

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
    • npx tsgo --version
  • 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.

Belum ada komentar.