10 puan yazan GN⁺ 2025-05-25 | 3 yorum | WhatsApp'ta paylaş
  • TypeScript derleyicisini Go tabanlı yerel bir sürüme taşıyan Corsa projesinin tsgo önizlemesi npm üzerinden yayınlandı
  • Mart ayında gündem olan 10 kat daha hızlı TypeScript ile ilgili devam niteliğinde bir duyuru
  • Mevcut tsc ile karşılaştırıldığında 10 kattan fazla hız artışı sağlandı ve JSX ile JSDoc tabanlı JS dosyaları da destekleniyor
  • VS Code için Native Preview eklentisi de yayınlandı, ancak otomatik tamamlama, referans bulma gibi özellikler hâlâ geliştirme aşamasında
  • Yeni yerel API ve LSP tabanlı dil sunucusu da hazırlanıyor; ayrıca Rust tabanlı Node modülü libsyncrpc kullanıma alındı
  • Bazı özellikler hâlâ uygulanmış değil ve TypeScript 7 (Corsa) ile mevcut 5.8 (Strada) arasında belirgin farklar bulunuyor

TypeScript Native Preview genel bakış

  • 2025 Mart ayında duyurulan TypeScript yerel porta taşıma projesinin (Corsa) önizlemesi yayınlandı
  • Mevcut JS tabanlı kod tabanına (Strada) kıyasla Go ile yazılan tsgo, paralellik ve paylaşımlı bellek kullanımı sayesinde büyük projelerde 10 kattan fazla performans artışı gösteriyor
  • tsgo ileride tscnin yerini alacak, ancak şu anda ayrı bir npm paketi olarak sunuluyor
    npm install -D @typescript/native-preview  
    npx tsgo --project ./src/tsconfig.json  
    

VS Code eklenti özellikleri

  • VS Code için “TypeScript (Native Preview)” eklentisi yayınlandı

  • Kurulumdan sonra Komut Paleti veya ayarlar üzerinden etkinleştirilmesi gerekiyor

    "typescript.experimental.useTsgo": true  
    
    Reklam
  • Şu anda mevcut eklentiye bağımlı ve işlevler sınırlı, ancak zamanla sürekli geliştirilecek

Yayın döngüsü ve geliştirme yol haritası

  • Bu önizlemenin ileride TypeScript 7 kararlı sürümüne dönüşmesi planlanıyor
  • Nightly yapı olarak dağıtılıyor ve otomatik güncelleniyor
  • Henüz desteklenmeyen bazı özellikler:
    • --build, --declaration, daha düşük hedefler için emit
    • Editör özellikleri: otomatik tamamlama, referans bulma, yeniden adlandırma vb.

Başlıca güncellemeler

Tür denetimi kapsamı genişledi

  • Tür denetimi işlevlerinin çoğunun portu tamamlandı
  • JSX ve JavaScript + JSDoc tür denetimi desteği de eklendi
  • Bazı kasıtlı değişiklikler ve lib.d.ts farkları nedeniyle hatalar farklı görünebilir

JSX tür denetimi desteği

  • JSX başlangıçta yalnızca parse edilebiliyordu, ancak artık tam tür denetimi desteği var
  • Örnek: Sentry projesinde tsc 72 saniye sürerken tsgo 6.7 saniyede tamamlanarak 10 kattan fazla hız artışı sağlıyor
    tsgo -p . --noEmit --extendedDiagnostics  
    
    Reklam

JavaScript dosyalarında tür denetimi

  • JSDoc tabanlı olarak JS dosyalarını analiz etme işlevi de yerel kod içinde yeniden uygulandı
  • Geçmişteki yaklaşıma göre daha modern ve tutarlı bir şekilde yeniden düzenlendi
  • Bazı eski kalıplar artık tanınmayabilir

Editör özellikleri (LSP tabanlı)

  • Mevcut TSServer yerine LSP tabanlı bir dil sunucusu yeniden yazılıyor
  • İlk sürümlerde hata gösterimi, tanıma gitme, hover özellikleri sunuluyor
  • Son dönemde otomatik tamamlama (completion) özelliği de eklendi

API geliştirme durumu

  • IPC tabanlı API katmanı üzerinde çalışılıyor
  • Farklı dillerden TypeScript süreciyle iletişim kurulabilecek
  • Node.js'te eşzamanlı iletişim için Rust tabanlı libsyncrpc modülü kullanıma alındı
  • API tasarımı henüz erken aşamada ve geri bildirimler toplanıyor

Mevcut TypeScript ile farklar

  • Bazı ayar farkları nedeniyle mevcut projelerde hata oluşabilir:

    Reklam
    • Örnek: --moduleResolution: node yerine bundler veya nodenext öneriliyor
      {  
        "compilerOptions": {  
          "module": "preserve",  
          "moduleResolution": "bundler"  
        }  
      }  
      
  • Diğer farklar:

    • JSX emit yalnızca preserve olarak mümkün
    • declaration emit desteklenmiyor
    • --build desteklenmiyor
    • Proje referanslarıyla ilgili dil hizmeti henüz tamamlanmadı

Bundan sonraki planlar

  • Bu yılın sonuna kadar --build ve editörün temel özelliklerinin büyük bölümünün tamamlanması hedefleniyor
  • Geliştirme durumu blog ve nightly sürümler üzerinden düzenli olarak paylaşılacak

3 yorum

 
riki3 2025-05-25

lspyi doğrudan derleyip kullanıyorum. Go'ya geçince kaynak kullanımının azaldığı gerçekten net şekilde hissediliyor.

 
cnaa97 2025-05-25

Bu aralar yalnızca js'yi rust / go'ya taşıyarak performansı artırmak moda oldu

 
click 2025-05-25

Refactoring yaparken tsserver tarafındaki kod ayrıştırması yavaşlayınca editörün tamamen donduğu durumlar epey oluyordu; umarım bir an önce çıkar da bu acıdan kurtuluruz.