keyof operatörü
- TypeScript kursu
- Orta seviye
- Ders 28/89
- 4 dk
keyof ile bir türün anahtarlarını öğrenirsin.
keyof operatörü
keyof operatörü, bir türün tüm özellik adlarını birleşim türü olarak verir. keyof Ayar yazdığında, Ayar'ın her özellik adı bir string literal türü olarak birleşir. Sonuç bir türdür, bir değer değil; bu yüzden yalnızca tür konumlarında kullanılır.
interface Ayar {
tema: string;
dil: string;
}
type Anahtar = keyof Ayar;
// "tema" | "dil"keyof ile tür tanımı
keyof ile üretilen birleşim, bir type alias olarak saklanabilir ve parametre türü olarak kullanılabilir. Böylece fonksiyon yalnızca geçerli özellik adlarını kabul eder; yanlış bir ad derleme hatasıdır. Bu, ayar veya konfigürasyon anahtarlarını kabul eden fonksiyonlarda işe yarar.
Uygulama Anahtar türüyle yazdır
Ayar arayüzünü tema: string ve dil: string özellikleriyle tanımla. Anahtarlar türünü keyof Ayar olarak tanımla. yaz(a: Anahtarlar): void fonksiyonu yazsın ve console.log(a) ile anahtarı yazdırsın. yaz("tema") çağrısı yap.
Başlangıç kodu
// Ayar arayüzünü tema ve dil özellikleriyle tanımla
// Anahtarlar türünü Ayar'ın özellik adları olarak tanımla
// yaz fonksiyonu Anahtarlar parametre alsın
// gövdede console.log ile parametreyi yazdır
// tema anahtarıyla çağırÖrnek çözüm
interface Ayar {
tema: string;
dil: string;
}
type Anahtarlar = keyof Ayar;
function yaz(a: Anahtarlar): void {
console.log(a);
}
yaz("tema");Beklenen çıktı
tema
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Aşağıdaki bildiride Anahtarlar türü ne olur?
interface Ayar { tema: string; dil: string; }
type Anahtarlar = keyof Ayar;- string | number
- { tema: string; dil: string }
- string
- "tema" | "dil" birleşimi Doğru cevap
Açıklama: keyof, özellik adlarını literal tür birleşimi olarak verir. Ayar'ın özellikleri tema ve dil olduğundan sonuç "tema" | "dil" olur. Değer türlerini veya nesnenin kendisini vermez.
2 keyof ekle
interface Ayar { tema: string; dil: string; }
type Anahtar = ____ Ayar;
interface Ayar { tema: string; dil: string; }
type Anahtar = keyof Ayar;
Açıklama: Bir türün özellik adlarını almak için keyof kullanılır. typeof değerden tür türetir; Pick ve Partial farklı amaçlara hizmet eder.
3 keyof parçaları
| Kavram | Anlamı |
|---|---|
keyof Ayar |
Ayar'ın özellik adları birleşimi |
type Anahtarlar = keyof Ayar |
Anahtar adlarından tür tanımı |
function yaz(a: Anahtarlar) |
Anahtar türü parametre |
yaz("tema") |
Geçerli anahtarla çağrı |