Ulaşım
- Adres:2342 Sk, İpekyol, İpek Ap 49A, 63250 Haliliye/Şanlıurfa
- Telefon:
0542 315 45 37 - eMail: info@alestaweb.com
JavaScript ekosistemindeki en büyük dönüşümlerden biri tip güvenliği oldu — ve bu dönüşümün lokomotifi TypeScript. TypeScript 5.7 sürümü; path rewriting, iterator helpers, daha akıllı never kontrolü ve birçok performans iyileştirmesi getirdi (smarter never checks and performance improvements). Alesta Web ekibi olarak bu rehberde TS 5.7'nin pratikte ne işe yaradığını ve mevcut projelerinize nasıl entegre edebileceğinizi anlatıyoruz.
TypeScript 5.7 sürümüne yükseltmek tek bir komutla yapılır. Önce mevcut projenize sürüm tespit edelim, sonra güncelleme yapalım.
# Global TypeScript sürümü
tsc --version
# Proje içindeki sürüm
npx tsc --version
# package.json'da TS sürümünü gör
cat package.json | grep typescript
# Proje bazlı yükseltme (önerilen)
npm install --save-dev typescript@5.7
# pnpm kullanıyorsanız
pnpm add -D typescript@5.7
# yarn kullanıyorsanız
yarn add -D typescript@5.7
# Yükseltme sonrası doğrula
npx tsc --version
Version 5.7.x şeklinde sürüm bilgisi görmelisiniz. Alesta Web uzmanları, üretim projelerinde minor sürüm (5.6 → 5.7) geçişlerinin genelde sorunsuz olduğunu, ama yine de tüm test suite'inizi çalıştırmanızı öneriyor.
TypeScript 5.7'nin en pratik yeniliklerinden biri, derleme sırasında import path'lerini otomatik olarak yeniden yazma yeteneği (automatic import path rewriting). Bu, modern ESM (ES Modules) çıktısı üreten projelerde uzun süredir beklenen bir iyileştirmeydi.
Node.js'in ESM modu, import yollarında dosya uzantısının (.js) açıkça belirtilmesini ister. Ama TypeScript dosyalarınızda .ts uzantısı yazmak istemezsiniz çünkü bu derlenince hâlâ .ts kalır. Önceden, tsc-alias gibi 3. parti araçlara ihtiyaç vardı.
{
"compilerOptions": {
"module": "nodenext",
"moduleResolution": "nodenext",
"rewriteRelativeImportExtensions": true,
"outDir": "./dist",
"target": "es2022"
}
}
Kaynak kod (TypeScript):
// src/index.ts
import { greet } from './utils.ts';
greet('Alesta Web');
Derleme öncesi (eskiden): ./utils.ts bozulmadan çıkardı, Node.js bulamazdı.
TypeScript 5.7 sonrası:
// dist/index.js
import { greet } from './utils.js'; // Otomatik dönüştürüldü!
greet('Alesta Web');
Bu özellik sayesinde projelerinizde .ts uzantısı ile import yazıp, derleme sonrası ESM uyumlu .js uzantılı çıktılar elde edebilirsiniz. Alesta Web ekibi olarak bu özelliği "yıllardır beklediğimiz şeylerden biri" olarak değerlendiriyoruz.
JavaScript'in Array.prototype üzerindeki map, filter, reduce gibi metodlarına alışkınız. Ama bu metodlar sadece dizilere özel değil mi? Generator'lara veya Set'lere uygulayamazdık. TypeScript 5.7, ECMAScript'in yeni Iterator Helpers önerisini tam olarak destekliyor.
function* numbers() {
let n = 1;
while (true) {
yield n++;
}
}
// Sonsuz generator üzerinde zincirli işlemler!
const result = numbers()
.filter(n => n % 2 === 0)
.map(n => n * n)
.take(5)
.toArray();
console.log(result); // [4, 16, 36, 64, 100]
Önceden bu işlem için RxJS gibi kütüphanelere veya manuel iterasyona ihtiyaç vardı. Artık native JavaScript ile, üstelik tip güvenli bir şekilde yapılabilir (type-safe and native).
const userIds = new Set([1, 2, 3, 4, 5]);
// Set'in iterator'unu doğrudan zincirle
const adminIds = userIds.values()
.filter(id => id % 2 === 1)
.toArray();
console.log(adminIds); // [1, 3, 5]
Iterator Helpers V8 (Chrome, Edge) ve modern Node.js'te yerleşik olarak desteklenir. Eski tarayıcılarda polyfill gerekebilir (polyfill required for older browsers). Alesta Web olarak server-side projelerde direkt, browser projelerinde polyfill ile kullanmanızı öneriyoruz.
TypeScript'in never tipi, "asla gerçekleşemez" anlamına gelir. Mesela bir fonksiyon her zaman exception fırlatıyorsa, return tipi never'dir. TypeScript 5.7, never kontrollerini birçok yeni durumda otomatik olarak yapıyor (smarter narrowing).
type Animal = 'cat' | 'dog' | 'bird';
function speak(animal: Animal) {
switch (animal) {
case 'cat': return 'miyav';
case 'dog': return 'hav hav';
// 'bird' unutuldu!
}
// ❌ TS 5.7 burada hata verir:
// "Type 'bird' is not assignable to type 'never'"
}
Bu sayede compile-time'da exhaustive checks (tüm durumların kontrol edildiğinden emin olma) çok daha güvenilir hale geliyor. Discriminated unions ile çalışırken büyük güven sağlıyor (great for discriminated unions).
Node.js 22.6+ sürümleri TypeScript dosyalarını --experimental-strip-types bayrağı ile doğrudan çalıştırabiliyor. Bu, "transpile etmeden TypeScript çalıştırma" anlamına geliyor. Alesta Web olarak küçük scriptler ve CLI uygulamaları için bu özelliği çok faydalı buluyoruz.
# Node.js 22.6+
node --experimental-strip-types script.ts
# Node.js 23+ (varsayılan etkin)
node script.ts
Bu özellik tip kontrolü YAPMAZ — sadece tip notasyonlarını kaldırır ve JavaScript olarak çalıştırır. Tip kontrolü için yine tsc --noEmit kullanmalısınız (still need tsc for type checking).
TypeScript 5.7, derleme hızı ve bellek kullanımında önemli optimizasyonlar getirdi. Alesta Web laboratuvarında orta büyüklükte (~50.000 satır) bir projede ölçtüğümüz farklar:
| Metrik | TS 5.6 | TS 5.7 |
|---|---|---|
| Soğuk derleme süresi | ~12s | ~9s |
| Incremental derleme | ~2.5s | ~1.8s |
| RAM kullanımı (peak) | ~850 MB | ~720 MB |
| Editör IntelliSense gecikme | ~280 ms | ~190 ms |
Sonuçlar büyük projelerde geliştirici verimliliğini doğrudan etkiliyor. Özellikle IntelliSense gecikmesinin azalması, kod yazarken daha akıcı bir deneyim sağlıyor (smoother coding experience).
TypeScript 5.6'dan 5.7'ye geçiş genellikle sorunsuzdur. Ama dikkat edilmesi gereken birkaç nokta var:
npm install --save-dev typescript@5.7npm test ile tüm testleri kontrol edinnpm run build ile production build'i deneyinnpx tsc --noEmit çalıştırınrewriteRelativeImportExtensions ekleyinTypeScript 5.7'de daha katı tip kontrolü nedeniyle önceden geçen kodun bazı kısımları artık hata verebilir (some previously valid code may now fail). Özellikle any kullanımı yoğun projelerde dikkatli olun. alestaweb.com üzerindeki dökümantasyonumuzda detaylı geçiş örnekleri bulabilirsiniz.
moduleResolution ayarı nodenext olmalı.
{
"compilerOptions": {
"module": "nodenext",
"moduleResolution": "nodenext"
}
}
target ayarınız ES2022 veya daha yeni olmalı.
{
"compilerOptions": {
"target": "ES2024",
"lib": ["ES2024", "DOM"]
}
}
VS Code'un kendi TypeScript sürümünü kullanıyor olabilir. Workspace sürümüne geçirin:
Ctrl + Shift + P → "TypeScript: Select TypeScript Version"Alesta Web olarak bu rehberdeki tüm örnekleri TypeScript 5.7.x sürümünde test ettik (verified on TypeScript 5.7.x).
TypeScript 5.7, görünüşte küçük ama pratikte çok değerli iyileştirmeler getirdi. Path rewriting ile ESM ekosistemine tam uyum, iterator helpers ile modern fonksiyonel programlama, daha akıllı never kontrolleri ve gözle görülür performans iyileştirmeleri. Yeni projelerde direkt TS 5.7 ile başlayın; mevcut projeleri ise testlerinizden geçirdikten sonra rahatça yükseltebilirsiniz.
Hızlı Özet / Quick Summary:
Faydalı Linkler / Useful Links:
© 2026 Alesta Web — Tüm hakları saklıdır. TypeScript projeleri, modern JavaScript ekosistemi ve ölçeklenebilir yazılım mimarisi için profesyonel destek almak isterseniz alestaweb.com üzerinden iletişime geçebilirsiniz.