کلیدواژه keyof (Keyof)
کلیدواژه «keyof» یعنی «نوعِ کلیدهای یک شیء». ساده بگویم: از نوعِ شیء، اسمِ ویژگی ها را به صورت نوع می گیریم. بنابراین، تایپ ها دقیق تر می شوند و خطاها زودتر پیدا می شوند.
keyof روی کلیدهای مشخص
وقتی شیء «کلیدهای مشخص» دارد، keyof یک «یونین (Union)» از همان کلیدها می سازد. یونین یعنی «یا این یا آن».
interface Person {
name: string;
age: number;
}
function printPersonProperty(person: Person, property: keyof Person) {
console.log(`Printing person property ${property}: "${person[property]}"`);
}
let person = {
name: "Max",
age: 27
};
printPersonProperty(person, "name");
keyof با امضای اندیسی
در «امضای اندیسی (Index Signature)»، keyof نوعِ اندیس را می دهد. پس می توانی کلیدها را داینامیک بسازی.
type StringMap = { [key: string]: unknown };
function createStringPair(property: keyof StringMap, value: string): StringMap {
return { [property]: value };
}
نکته: با keyof فقط اسم کلیدها نوع می شوند، نه مقدارها. پس همچنان نوعِ مقدار مهم است.
گام های عملی
- اول نوعِ شیء را بساز.
- سپس پارامتر را از نوعِ
keyof YourTypeکن. - در پایان، مقدار را با
obj[property]بخوان.
صفحه انواع کاربردی مرتبط است. همچنین لینک خود این صفحه با لنگر کلیدواژه keyof را برای سئو نگه دار.
جمع بندی سریع
- keyof نوعِ نامِ ویژگی ها را می دهد.
- برای کلیدهای مشخص، یونین می سازد.
- با امضای اندیسی، نوعِ اندیس را می دهد.
- هنوز نوعِ مقدار مهم می ماند.