Bu iki operatör var olan türlerden ve değerlerden türler türetmenizi sağlar — tür seviyesi programlamanın temelini oluştururlar.
keyof — bir nesne türünün anahtarlarının birleşimi
interface User { id: number; : ; }
= keyof ;
Bu iki operatör var olan türlerden ve değerlerden türler türetmenizi sağlar — tür seviyesi programlamanın temelini oluştururlar.
interface User { id: number; : ; }
= keyof ;
const config = { host: "localhost", port: 3000 };
type Config = typeof config; // { host: string; port: number }
typeof (bir tür konumunda) çalışma zamanı değerinin çıkarılan türünü yakalar, böylece türü ayrı olarak yazmak zorunda kalmazsınız.
function getProp<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const user = { id: 1, name: "Ann" };
getProp(user, "name"); // returns string
getProp(user, "age"); // ❌ Error: "age" is not a key of user
Burada K extends keyof T key parametresini gerçek anahtarlarla sınırlandırır ve T[K] (bir indexed access type) o anahtar için tam değer türünü geri verir. Yazım hataları derleme hatasına dönüşür.
const Roles = { Admin: "admin", User: "user" } as const;
type Role = typeof Roles[keyof typeof Roles]; // "admin" | "user"
keyof ve typeof değer dünyası ile tür dünyasını bağlarlar.
Tür-güvenli özellik erişimi, konfigürasyon/sabitlerden türler türetme (tek kaynak) ve eşlenmiş ve koşullu türler için yapı taşları güçlendirir.
Parallel tür tanımlarını manuel olarak tutmanız gerekmediği yollarıdır.
Junior'dan Senior'a detaylı cevaplarla bir BT mülakat soruları kütüphanesi.
Bağış Yap