Mapped ile üretim
- TypeScript kursu
- İleri seviye
- Ders 7/57
- 4 dk
Mapped types ile dize türü üretmeyi öğrenirsin.
Mapped ile üretim nedir?
Mapped type ile bir union üzerinde dönüp her üye için bir template literal değer üretebilirsin. [K in Union]: `veri_${K}` biçiminde her anahtar, kendi adını içeren bir dize türüne bağlanır. Bu, tür güvenli sözlük türleri üretmenin güçlü bir yoludur.
type Anahtar = "ad" | "yas";
type Deger = {
[K in Anahtar]: `veri_${K}`;
};
// { ad: "veri_ad"; yas: "veri_yas" }Key remapping ile anahtar üretimi
Mapped type'ta as anahtar kelimesi ile anahtarları yeniden adlandırabilirsin. [K in Kaynak as `get_${K}`] biçiminde, her kaynak anahtardan yeni bir template literal anahtar üretilir. Bu, getter/setter isimleri üretmek için idealdir.
type Kaynak = "ad" | "yas";
type Getir = {
[K in Kaynak as `get_${K}`]: string;
};
// { get_ad: string; get_yas: string }Uygulama Getter üreten mapped type
Kaynak adında union tanımla: "ad" | "yas". Getir adında mapped type tanımla: her K in Kaynak için [K in Kaynak as `get_${K}`]: string. g değişkeni Getir türünde ve değeri { get_ad: "Ali", get_yas: "30" } olsun. g.get_ad değerini console.log ile yazdır.
Başlangıç kodu
// Kaynak adinda union tanimla
// Getir mapped type ile get_ onekli anahtarlar uret
// her anahtar string deger tursun
// g nesnesini tanimla
// g.get_ad yazdirÖrnek çözüm
type Kaynak = "ad" | "yas";
type Getir = {
[K in Kaynak as `get_${K}`]: string;
};
const g: Getir = { get_ad: "Ali", get_yas: "30" };
console.log(g.get_ad);Beklenen çıktı
Ali
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 [K in Anahtar]: `veri_${K}` mapped type ne üretir?
- Tek bir birleşik dize
- Her anahtar için template literal değer Doğru cevap
- Boş bir nesne türü
- Sayı dizisi
Açıklama: Mapped type her anahtar için ayrı bir template literal değer üretir; sonuç her anahtarı kendi dize değerine bağlayan bir nesne türüdür.
2 Key remapping değişkeni
type Kaynak = "ad" | "yas";
type Getir = {
[K in Kaynak as `get_${____}`]: string;
};
type Kaynak = "ad" | "yas";
type Getir = {
[K in Kaynak as `get_${K}`]: string;
};
Açıklama: Mapped type'ta K döngü değişkenidir; key remapping sırasında template literal içine K yerleştirilir.
3 Mapped üretim kavramları
| Kavram | Anlamı |
|---|---|
[K in Union] |
Mapped döngüsü |
as |
Anahtar yeniden adlandırma |
`get_${K}` |
Şablon anahtar |
K |
Döngü değişkeni |