Özet - Utility types
- TypeScript kursu
- Orta seviye
- Ders 27/89
- 4 dk
Utility types'larla esnek bir form tipi yazarsın.
Özet - Utility types
Utility types, var olan türlerden yeni türler üretir. Partial hepsini isteğe bağlı, Required hepsini zorunlu yapar. Pick belirli özellikleri seçer, Omit belirli özellikleri çıkarır. Record anahtar-değer eşlemesi kurar. Birlikte kullanılarak esnek form tipleri yazılabilir.
type FormAlan = Pick<Uye, "ad" | "eposta">;
type Guncelleme = Partial<FormAlan>;Uygulama Esnek form tipi
Uye arayüzünü ad: string, eposta: string ve yas: number ile tanımla. FormTip türünü Pick<Uye, "ad" | "eposta"> olarak tanımla. FormGuncelle türünü Partial<FormTip> olarak tanımla. guncelle(u: FormGuncelle): void fonksiyonu yaz; gövdede u.ad varsa console.log ile yazdır. guncelle({ ad: "Mert" }) çağrısı yap.
Başlangıç kodu
// Uye arayüzünü ad, eposta, yas ile tanımla
// FormTip türü Uye'dan ad ve eposta özelliklerini alsın
// FormGuncelle türü FormTip'in tüm özelliklerini isteğe_optional yapsın
// guncelle fonksiyonu FormGuncelle parametre alsın
// gövdede u.ad varsa console.log ile yazdır
// { ad: "Mert" } ile çağırÖrnek çözüm
interface Uye {
ad: string;
eposta: string;
yas: number;
}
type FormTip = Pick<Uye, "ad" | "eposta">;
type FormGuncelle = Partial<FormTip>;
function guncelle(u: FormGuncelle): void {
if (u.ad) {
console.log(u.ad);
}
}
guncelle({ ad: "Mert" });Beklenen çıktı
Mert
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir formdan yalnızca <code>ad</code> ve <code>eposta</code> alanlarını alıp hepsini isteğe bağlı yapmak için hangi kombinasyon kullanılır?
- Omit<Partial<Uye>, "eposta">
- Partial<Pick<Uye, "ad" | "eposta">> Doğru cevap
- Required<Omit<Uye, "ad">>
- Pick<Record<string, number>, "ad">
Açıklama: Önce Pick ile ad ve eposta seçilir, sonra Partial ile bu ikisi isteğe_optional yapılır. Diğer seçenekler ya yanlış alanları tutar ya da isteğe optional kılmaz.
2 Form güncelleme türü
interface Uye { ad: string; eposta: string; yas: number; }
type FormGuncelle = ____<Pick<Uye, "ad" | "eposta">>;
interface Uye { ad: string; eposta: string; yas: number; }
type FormGuncelle = Partial<Pick<Uye, "ad" | "eposta">>;
Açıklama: Seçili alanların hepsini isteğe bağlı yapmak için Partial kullanılır. Required tersini yapar; Omit çıkarır; Record eşleme kurar.
3 Utility types eşleştir
| Kavram | Anlamı |
|---|---|
Partial<T> |
Tüm özellikleri isteğe bağlı |
Required<T> |
Tüm özellikleri zorunlu |
Pick<T, K> |
K özelliklerini seçer |
Omit<T, K> |
K özelliklerini çıkarır |