Utility Tipleri & Keyof
Utility Tipleri & Keyof: Utility type'lar, bir terzinin elinde hazır bulunan kalıplara benzer — orijinal kıyafeti (tipi) sıfırdan yeniden dikmek yerine, var olan kalıbı alıp 'tüm
Utility type'lar, bir terzinin elinde hazır bulunan kalıplara benzer — orijinal kıyafeti (tipi) sıfırdan yeniden dikmek yerine, var olan kalıbı alıp 'tüm düğmeleri çıkar' (Partial), 'sadece yakayı al' (Pick) veya 'kolu kes' (Omit) der ve yeni bir tip türetirsiniz. Peki bu dönüşümleri neden elle, her seferinde yeni bir interface yazarak yapmıyoruz? Çünkü `User` tipinden türeyen `UpdateUserPayload` (tüm alanlar opsiyonel) gibi bir tip, User değişince elle senkronize tutulması gereken ayrı bir kopya olur — unutmak çok kolaydır; `Partial ` ise orijinal tip değiştikçe otomatik güncellenir. Java'da bu işlemler genelde manuel yeni sınıflar yazarak veya kütüphane (örn. Lombok) ile yapılırdı, TypeScript bunu dile gömülü olarak sunar. QA'da somut faydası: bir test senaryosunda kullanıcının sadece `email` alanını güncellediğiniz bir PATCH isteği için `Partial ` kullanırsanız, diğer alanları zorunlu kılan eski tip hatası vermez ama yine de yanlış bir alan adı yazarsanız derleyici bunu yakalar.
Micro Lab: TypeScript kod yazma
TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.
Utility tipler — tip cerrahi araçları
Pick sadece o alanları alır; Omit o alanı çıkarır
Partial tüm alanları opsiyonel yapar — güncelleme payload'ları için ideal
Record — anahtar-değer haritası tipi oluşturur
Kullanım senaryolarına göre doğru utility tip eşleşmesini sırala:
API güncelleme payload'ı → Partial
Sadece id+name göster → Pick
Şifre hariç tüm alanlar → Omit
Test sonuçları haritası → Record
function updateTest(id: number, changes: Partial >) imzasında ne yapar Partial >?
id dışındaki tüm TestCase alanlarını opsiyonel yapar — sadece değişenleri gönder