11 puan yazan dlwocks31 5 일 전 | Henüz yorum yok. | WhatsApp'ta paylaş

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
    • npx tsgo --version
  • İ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.

Henüz yorum yok.