Ömer Özbay
TypeScript
TypeScript

TypeScript 5.4: NoInfer ve Yeni Utility Tipler

1 Mart 2026 10 dk okuma 1.5K görüntülenme

TypeScript 5.4, tip sistemine önemli yenilikler getirdi. Bu yazıda en dikkat çekici özellikleri pratik örneklerle inceliyoruz.

NoInfer Utility Tipi

TypeScript'in tip çıkarımını belirli parametreler için devre dışı bırakmanızı sağlar. Özellikle generic fonksiyonlarda istenmeyen tip genişlemesini önler.

// NoInfer olmadan: T, 'a' | 'b' | 'c' olarak çıkarılır function createStore<T>(items: T[], defaultItem: T): T { return defaultItem; } // NoInfer ile: T sadece items'tan çıkarılır function createStore<T>(items: T[], defaultItem: NoInfer<T>): T { return defaultItem; } createStore(['a', 'b'], 'c'); // ✅ Hata: 'c' T'ye uymuyor

Closure'larda Narrowing İyileştirmesi

TypeScript 5.4, son atamadan sonra değişmeyen değişkenleri closure içinde de doğru şekilde daraltabiliyor.

function processUser(user: User | null) { if (!user) return; // TypeScript artık setTimeout içinde de user'ın null olmadığını biliyor setTimeout(() => { console.log(user.name); // ✅ Hata yok }, 1000); }

Object.groupBy ve Map.groupBy Tipleri

ES2024 ile gelen Object.groupBy artık TypeScript'te tam tip desteğine sahip.

const posts = [ { title: 'React', category: 'frontend' }, { title: 'Docker', category: 'devops' }, ]; const grouped = Object.groupBy(posts, p => p.category); // Tip: Partial<Record<string, { title: string; category: string }[]>>

Sonuç

TypeScript 5.4, özellikle NoInfer ile generic API tasarımını çok daha güvenli hale getiriyor. Projelerinizi güncellemenizi şiddetle tavsiye ederim.

Faydalı buldunuz mu? Bu içeriği kendi ağınızla paylaşarak bana destek olabilirsiniz.