Özet - keyof ve typeof
- TypeScript kursu
- Orta seviye
- Ders 31/89
- 4 dk
Operatörlerle güvenli bir ayar yöneticisi yazarsın.
Özet - keyof ve typeof
keyof bir türün anahtarlarını, typeof bir değerin türünü verir. İkisini birleştirerek: typeof ile bir nesneden tür türet, keyof ile anahtarlarını al, dizin erişimiyle güvenli değer getiren fonksiyonlar yaz. Bu, ayar yöneticisi gibi yapılar için idealdir.
const ayarlar = { tema: "koyu", dil: "tr" };
type AyarTip = typeof ayarlar;
type AyarAnahtar = keyof AyarTip;
function al(k: AyarAnahtar): AyarTip[AyarAnahtar] {
return ayarlar[k];
}Uygulama Ayar yöneticisi
ayarlar değişkenine { tema: "koyu", dil: "tr" } nesnesini ata. AyarTip türünü typeof ayarlar olarak tanımla. AyarAnahtar türünü keyof AyarTip olarak tanımla. al(k: AyarAnahtar): AyarTip[AyarAnahtar] fonksiyonunu yaz; gövdesi return ayarlar[k]; olsun. al("tema") sonucunu console.log ile yazdır.
Başlangıç kodu
// ayarlar değişkenine { tema: "koyu", dil: "tr" } ata
// AyarTip türünü ayarlar'ın türü olarak tanımla
// AyarAnahtar türünü AyarTip'in anahtarları olarak tanımla
// al fonksiyonu AyarAnahtar parametre alsın
// dönüş türü AyarTip'in AyarAnahtar indeksi olsun
// gövde return ayarlar[k]; olsun
// tema anahtarının değerini al ile getir ve yazdırÖrnek çözüm
const ayarlar = { tema: "koyu", dil: "tr" };
type AyarTip = typeof ayarlar;
type AyarAnahtar = keyof AyarTip;
function al(k: AyarAnahtar): AyarTip[AyarAnahtar] {
return ayarlar[k];
}
console.log(al("tema"));Beklenen çıktı
koyu
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir ayar nesnesinden güvenli özellik erişimi için hangi sıra izlenir?
- dizin erişimi, keyof, typeof
- typeof ile tür türet, keyof ile anahtar al, dizin erişimiyle değer getir Doğru cevap
- keyof ile anahtar al, typeof ile tür türet, dizin erişimi
- typeof, dizin erişimi, keyof
Açıklama: Önce typeof ile nesneden tür türetilir, sonra keyof ile anahtarlar alınır, son olarak dizin erişimiyle güvenli değer getirilir. Bu sıra bozulursa tür düzeyinde çıkarım çalışmaz.
2 Dizin erişim dönüş türü
const ayarlar = { tema: "koyu", dil: "tr" };
type AyarTip = typeof ayarlar;
type AyarAnahtar = keyof AyarTip;
function al(k: AyarAnahtar): ____ {
return ayarlar[k];
}
const ayarlar = { tema: "koyu", dil: "tr" };
type AyarTip = typeof ayarlar;
type AyarAnahtar = keyof AyarTip;
function al(k: AyarAnahtar): AyarTip[AyarAnahtar] {
return ayarlar[k];
}
Açıklama: Dönüş değeri ayarlar[k] olduğundan ve k AyarAnahtar olduğundan dönüş türü AyarTip[AyarAnahtar] olmalıdır. Yalnızca AyarTip veya string çok dar/geniş; AyarAnahtar ise anahtar türüdür.
3 Operatörleri eşleştir
| Kavram | Anlamı |
|---|---|
typeof ayarlar |
Değerden tür türetir |
keyof AyarTip |
Türün anahtarlarını verir |
AyarTip[AyarAnahtar] |
Anahtarın değer türü |
al("tema") |
Güvenli değer getirme |