TypeScript 7.0 Beta yayımlandı
(devblogs.microsoft.com)TypeScript 7.0 Beta yayımlandı - Go yerel portu sayesinde TS yaklaşık 10 kat hızlandı
- Mevcut TypeScript derleyicisinin Go'ya taşındığı yeni yerel uygulama
- “beta” olmasına rağmen günlük işlerde ve CI ortamında hemen denenebilecek kadar kararlı olduğu özellikle vurgulanıyor
- Yeni kod tabanı bir yeniden yazım değil, mevcut uygulamanın sistematik biçimde taşınmış hali
- Tip denetimi mantığı TypeScript 6.0 ile yapısal olarak aynı
- TypeScript 6.0'a kıyasla zaman zaman yaklaşık 10 kat daha hızlı performans
- Yerel kod performansı + paylaşımlı bellek paralelleştirmesi temelli
- Microsoft içi ve dışındaki milyonlarca LOC'lik kod tabanlarında hâlihazırda kullanılıyor
- Bloomberg, Canva, Figma, Google, Linear, Notion, Slack, Vercel ve diğerleriyle ön testler yapıldı
- Yalnızca CLI değil, editör deneyimi de daha hafif ve daha hızlı olacak şekilde iyileştirildi
Kullanım şekli
- Şu anda ayrı bir paket olarak kuruluyor
npm install -D @typescript/native-preview@beta
- Mevcut
tscyerinetsgoçalıştırılıyornpx tsgo --version
- İleride kararlı sürüm yeniden
typescriptpaketi vetscgiriş noktasıyla dağıtılacak
TypeScript 6.0 ile birlikte kullanım
- 7.0 Beta,
@typescript/native-preview+tsgoolarak sunuluyor - Mevcut
tscvetsgoyan yana çalıştırılarak karşılaştırma yapılabiliyor - Kararlı sürümde TS7 yeniden
tscadını kullanacak - TS6 uyumluluğu için
@typescript/typescript6paketi de sunuluyor - TypeScript API'sine bağımlı mevcut araçlar bir süre daha TS6 API'sini kullanacak şekilde yapılandırılabiliyor
Önemli sınırlamalar
- 7.0 Beta production-ready seviyesine yakın olsa da henüz kararlı bir programatik API yok
- Kararlı API için en erken TypeScript 7.1 sonrası, yani birkaç ay sonrası hedefleniyor
- TypeScript API'sine doğrudan bağımlı araçlar/eklenti'ler geçişte dikkat gerektiriyor
Paralelleştirme
- Ayrıştırma, tip denetimi, emit gibi çeşitli aşamalar paralelleştirildi
- Tip denetimi worker sayısını ayarlayan
--checkersseçeneği eklendi - Project reference derlemelerini paralelleştiren
--buildersseçeneği eklendi - Tek iş parçacıklı çalıştırma için
--singleThreadedseçeneği eklendi - Büyük kod tabanları ve monorepo'larda etkisi yüksek, ancak paralellik arttıkça bellek kullanımı da artabiliyor
TypeScript 6.0 temelinde uyumluluk
- TypeScript 7.0, TypeScript 6.0'ın tip denetimi/CLI davranışıyla uyumlu olmayı hedefliyor
- TS6'da clean compile olan kodun TS7'de de aynı şekilde derlenmesi amaçlanıyor
- Ancak TS6'nın yeni varsayılanları ve deprecated özellik temizliği de birlikte uygulanıyor
strict,module,rootDir,typesgibi varsayılan değişiklikleri mevcut projelerde hissedilebilir- Özellikle
rootDirvetypesdeğişiklikleri geçiş sırasında kontrol edilmeli - Eski target/modül ayarlarını veya deprecated seçenekleri kullanan projelerin önce TS6 geçişini tamamlaması öneriliyor
JavaScript/JSDoc değişiklikleri
- JS desteği, TypeScript dosya analiz biçimiyle daha tutarlı olacak şekilde yeniden düzenlendi
- Bazı JSDoc/Closure tarzı sözdizimleri ve eski JS kalıplarına yönelik özel işlemler kaldırıldı
- JS + JSDoc tabanlı kod tabanlarının ayrıca kontrol edilmesi gerekiyor
Editör desteği
- VS Code için TypeScript Native Preview eklentisi sunuluyor
- CLI ile aynı temele dayandığı için editörde de aynı performans iyileştirmeleri sağlanıyor
- auto-import, hover, inlay hints, code lens, JSX linked editing gibi özellikler destekleniyor
- LSP tabanlı olduğu için diğer modern editör ve araçlarda da kullanımı kolay
Gelecek planları
- Daha verimli bir
--watchuygulaması planlanıyor - JS dosyalarında declaration emit parity çalışması yapılacak
- Editör özelliklerindeki farkların kapatılması planlanıyor
- Kararlı programatik API, TypeScript 7.1 sonrasında gelecek
- TypeScript 7.0 kararlı sürümü için hedef yaklaşık 2 ay içinde
- RC'nin ise bundan birkaç hafta önce yayımlanması planlanıyor
Henüz yorum yok.