فهرست سرفصل‌های TypeScript
خانه (Home) معرفی (Introduction) شروع سریع (Get Started) انواع ساده (Simple Types) تعریف صریح و استنتاج نوع (Explicit & Inference) انواع ویژه (Special Types) آرایه ها (Arrays) تاپل ها (Tuples) انواع شیء (Object Types) شمارشی ها (Enums) نام مستعار و اینترفیس ها (Aliases & Interfaces) انواع اتحادی (Union Types) توابع (Functions) تبدیل نوع (Casting) کلاس ها (Classes) جنریک های پایه (Basic Generics) انواع کاربردی (Utility Types) کلیدواژه keyof (Keyof) Null (Null) Definitely Typed (Definitely Typed) به روزرسانی های نسخه 5 (5 Updates) پیکربندی (Configuration) با Node.js (with Node.js) با React (with React) ابزارها (Tooling) انواع پیشرفته (Advanced Types) نگهبان های نوع (Type Guards) انواع شرطی (Conditional Types) انواع نگاشتی (Mapped Types) استنتاج نوع (Type Inference) انواع لیترال (Literal Types) فضای نام (Namespaces) امضاهای ایندکس (Index Signatures) ادغام اعلان ها (Declaration Merging) برنامه نویسی ناهمگام (Async Programming) دکوراتورها (Decorators) در پروژه های JS (in JS Projects) مهاجرت (Migration) مدیریت خطا (Error Handling) بهترین شیوه ها (Best Practices) ادیتور (Editor) تمرین ها (Exercises) آزمون (Quiz) سرفصل دوره (Syllabus) برنامه مطالعه (Study Plan) گواهینامه (Certificate)
نتیجه‌ای برای جستجو یافت نشد.
TypeScript

TypeScript — کلیدواژه keyof (Keyof)

آخرین بروزرسانی: 1404/08/14

کلیدواژه 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 فقط اسم کلیدها نوع می شوند، نه مقدارها. پس همچنان نوعِ مقدار مهم است.

گام های عملی

  1. اول نوعِ شیء را بساز.
  2. سپس پارامتر را از نوعِ keyof YourType کن.
  3. در پایان، مقدار را با obj[property] بخوان.

صفحه انواع کاربردی مرتبط است. همچنین لینک خود این صفحه با لنگر کلیدواژه keyof را برای سئو نگه دار.

جمع بندی سریع

  • keyof نوعِ نامِ ویژگی ها را می دهد.
  • برای کلیدهای مشخص، یونین می سازد.
  • با امضای اندیسی، نوعِ اندیس را می دهد.
  • هنوز نوعِ مقدار مهم می ماند.