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
tsc yerine tsgo çalıştırılıyor
- İleride kararlı sürüm yeniden
typescript paketi ve tsc giriş noktasıyla dağıtılacak
TypeScript 6.0 ile birlikte kullanım
- 7.0 Beta,
@typescript/native-preview + tsgo olarak sunuluyor
- Mevcut
tsc ve tsgo yan yana çalıştırılarak karşılaştırma yapılabiliyor
- Kararlı sürümde TS7 yeniden
tsc adını kullanacak
- TS6 uyumluluğu için
@typescript/typescript6 paketi 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
--checkers seçeneği eklendi
- Project reference derlemelerini paralelleştiren
--builders seçeneği eklendi
- Tek iş parçacıklı çalıştırma için
--singleThreaded seç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, types gibi varsayılan değişiklikleri mevcut projelerde hissedilebilir
- Özellikle
rootDir ve types değ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
--watch uygulaması 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.