TypeScript Native önizlemesi yayınlandı
(devblogs.microsoft.com)- 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
tscile 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 tsgoileridetscnin yerini alacak, ancak şu anda ayrı bir npm paketi olarak sunuluyornpm 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 -
Ş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.tsfarkları 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
tsc72 saniye sürerkentsgo6.7 saniyede tamamlanarak 10 kattan fazla hız artışı sağlıyortsgo -p . --noEmit --extendedDiagnostics
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:
- Örnek:
--moduleResolution: nodeyerinebundlerveyanodenextöneriliyor{ "compilerOptions": { "module": "preserve", "moduleResolution": "bundler" } }
- Örnek:
-
Diğer farklar:
- JSX emit yalnızca preserve olarak mümkün
- declaration emit desteklenmiyor
--builddesteklenmiyor- Proje referanslarıyla ilgili dil hizmeti henüz tamamlanmadı
Bundan sonraki planlar
- Bu yılın sonuna kadar
--buildve 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
lspyi doğrudan derleyip kullanıyorum. Go'ya geçince kaynak kullanımının azaldığı gerçekten net şekilde hissediliyor.Bu aralar yalnızca js'yi rust / go'ya taşıyarak performansı artırmak moda oldu
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.