10 poin oleh GN⁺ 2025-05-25 | 3 komentar | Bagikan ke WhatsApp
  • Pratinjau tsgo dari Project Corsa, proyek porting kompiler TypeScript ke native berbasis Go, telah dirilis melalui npm
  • Ini adalah pengumuman lanjutan terkait TypeScript 10x lebih cepat yang sempat menjadi pembahasan pada bulan Maret
  • Dibandingkan tsc yang ada saat ini, proyek ini mencapai peningkatan kecepatan lebih dari 10x, serta mendukung file JS berbasis JSX dan JSDoc
  • Ekstensi Native Preview untuk VS Code juga telah dirilis, tetapi fitur seperti autocomplete dan find references masih dalam pengembangan
  • API native baru dan language server berbasis LSP juga sedang disiapkan, bersama adopsi modul Node berbasis Rust, libsyncrpc
  • Sebagian fitur masih belum diimplementasikan, dan ada perbedaan yang jelas antara TypeScript 7 (Corsa) dan versi 5.8 yang ada saat ini (Strada)

Ringkasan TypeScript Native Preview

  • Pratinjau dari proyek porting native TypeScript (Corsa) yang diumumkan pada Maret 2025 kini telah tersedia
  • Dibandingkan codebase lama berbasis JS (Strada), tsgo yang ditulis dalam Go menunjukkan peningkatan performa lebih dari 10x pada proyek besar melalui paralelisme dan pemanfaatan shared memory
  • tsgo pada akhirnya direncanakan menggantikan tsc, tetapi saat ini masih disediakan sebagai paket npm terpisah
    npm install -D @typescript/native-preview  
    npx tsgo --project ./src/tsconfig.json  
    

Fitur ekstensi VS Code

  • Ekstensi “TypeScript (Native Preview)” untuk VS Code telah dirilis

  • Setelah instalasi, aktivasi perlu dilakukan melalui Command Palette atau pengaturan

    "typescript.experimental.useTsgo": true  
    
  • Saat ini masih bergantung pada ekstensi lama dan fiturnya terbatas, tetapi akan terus ditingkatkan

Siklus rilis dan roadmap pengembangan

  • Pratinjau ini ke depannya akan berkembang menjadi rilis resmi TypeScript 7
  • Didistribusikan sebagai Nightly build dan akan diperbarui secara otomatis
  • Sebagian fitur masih belum didukung:
    • --build, --declaration, emit untuk target yang lebih rendah
    • Fitur editor: autocomplete, find references, rename, dll.

Pembaruan utama

Peningkatan kelengkapan type checking

  • Sebagian besar fitur type checking telah selesai di-porting
  • Type checking untuk JSX serta JavaScript + JSDoc juga mulai didukung
  • Karena beberapa perubahan yang disengaja dan perbedaan pada lib.d.ts, error yang muncul bisa berbeda

Dukungan type checking JSX

  • Pada awalnya JSX hanya bisa di-parse, tetapi sekarang sudah mendukung type checking penuh
  • Contoh: pada proyek Sentry, tsc memerlukan 72 detik, sedangkan tsgo hanya 6,7 detik, menghasilkan peningkatan kecepatan lebih dari 10x
    tsgo -p . --noEmit --extendedDiagnostics  
    

Type checking file JavaScript

  • Fitur untuk menganalisis file JS berbasis JSDoc juga telah diimplementasikan ulang dalam kode native
  • Direfaktor dengan cara yang lebih modern dan konsisten dibanding pendekatan sebelumnya
  • Beberapa pola lama mungkin tidak lagi dikenali

Fitur editor (berbasis LSP)

  • Sedang ditulis ulang menjadi language server berbasis LSP sebagai pengganti TSServer lama
  • Pada versi awal, tersedia fitur penanda error, go to definition, dan hover
  • Baru-baru ini, fitur completion juga telah ditambahkan

Status pengembangan API

  • Lapisan API berbasis IPC sedang diimplementasikan
  • Hal ini memungkinkan komunikasi dengan proses TypeScript dari berbagai bahasa
  • Untuk komunikasi sinkron di Node.js, diperkenalkan modul berbasis Rust libsyncrpc
  • Desain API masih berada pada tahap awal dan sedang menerima masukan

Perbedaan dengan TypeScript saat ini

  • Karena sejumlah perbedaan konfigurasi, error dapat terjadi pada proyek yang sudah ada:

    • Contoh: --moduleResolution: node → disarankan menggunakan bundler atau nodenext
      {  
        "compilerOptions": {  
          "module": "preserve",  
          "moduleResolution": "bundler"  
        }  
      }  
      
  • Perbedaan lainnya:

    • JSX emit hanya bisa dipertahankan apa adanya
    • declaration emit belum didukung
    • --build belum didukung
    • Layanan bahasa terkait project references masih belum lengkap

Rencana ke depan

  • Menargetkan implementasi --build dan sebagian besar fitur inti editor selesai pada akhir tahun ini
  • Perkembangan akan terus diperbarui melalui blog dan rilis nightly

3 komentar

 
riki3 2025-05-25

Saya membangun dan menggunakannya langsung dengan LSP. Setelah beralih ke Go, penurunan penggunaan resource benar-benar terasa jelas.

 
cnaa97 2025-05-25

Akhir-akhir ini yang sedang tren adalah cukup memindahkan js ke rust / go untuk meningkatkan performa

 
click 2025-05-25

Saat melakukan refactoring, cukup sering parsing kode di sisi tsserver melambat sehingga editor benar-benar macet total; semoga cepat dirilis supaya bisa terbebas dari penderitaan ini.