CodeBlanks Logo Icon CodeBlanks

keyof operatörü

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

index.ts
// 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

index.ts
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?

index.ts
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

Soru
interface Ayar { tema: string; dil: string; }
type Anahtar = ____ Ayar;
Cevap
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ı

Orta seviye bölümündeki tüm dersler