TypeScript Academy · درس

‏keyof وأنواع الوصول المفهرس

اصلوا إلى أنواع خصائص الكائنات ديناميكيًا باستخدام keyof وT[K]

الدرس 1 من 413 خطوة

‏keyof وأنواع الوصول المفهرس درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

مرحبًا

ينتج keyof اتحادًا من أسماء خصائص نوع كائن. وتسترجع أنواع الوصول المفهرس (T[K]) النوع الموجود عند مفتاح خاصية محدد.

أساسيات keyof

يعيد keyof T اتحادًا من أنواع أسماء جميع خصائص T.
interface User { id: number; name: string; email: string; }
type UserKeys = keyof User; // 'id' | 'name' | 'email'

الوصول المفهرس: T[K]

استخدموا T[K] للحصول على نوع الخاصية K في النوع T.
type IdType = User['id'];   // number
type NameType = User['name']; // string

الوصول الديناميكي إلى الخصائص

اجمعوا بين keyof والأنواع العامة لإنشاء دوال للوصول إلى الخصائص مع ضمان سلامة الأنواع.
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}
const name = getProperty(user, 'name'); // string

keyof مع typeof

استخدموا typeof على قيمة، ثم keyof للحصول على أسماء خصائصها من دون التصريح بواجهة.
const config = { host: 'localhost', port: 3000 };
type ConfigKey = keyof typeof config; // 'host' | 'port'

اتحاد الأنواع المفهرسة

افهرسوا نوعًا باستخدام اتحاد من المفاتيح للحصول على اتحاد أنواع قيمها.
type NumericValues = User['id' | 'age']; // number | number = number

استخدام keyof مع المصفوفات

يعيد keyof على نوع مصفوفة أنواع فهارس المصفوفة بالإضافة إلى أسماء أساليبها.
type ArrKey = keyof string[]; // number | 'length' | 'push' | ...
type Element = string[][number]; // string

الوصول المفهرس التكراري

سلسلوا أنواع الوصول المفهرس للتعامل مع الكائنات المتداخلة.
type Address = { city: string; zip: string };
type Profile = { address: Address };
type City = Profile['address']['city']; // string

القيود باستخدام keyof

استخدموا K extends keyof T كقيد لنوع عام لضمان أن K مفتاح صالح في T.
function setProperty<T, K extends keyof T>(obj: T, key: K, value: T[K]): void {
  obj[key] = value;
}

تستخدم الأنواع المُحوَّلة keyof

تكرّر الأنواع المُحوَّلة على keyof T لتحويل أنواع الكائنات.
type Readonly2<T> = { readonly [K in keyof T]: T[K] };

keyof في الأنواع الشرطية

يُعد keyof قويًا في الأنواع الشرطية لاستخراج مجموعات مفاتيح محددة.
type StringKeys<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];

تحقّق سريع

ماذا يعيد `User['name']` إذا كانت `interface User { name: string }`؟

مراجعة

يستخرج keyof أسماء الخصائص في صورة نوع اتحاد. ويسترجع T[K] النوع الموجود عند مفتاح. ويتيحان معًا الوصول الآمن إلى الخصائص، والأنواع المُحوَّلة، وأدوات الأنواع الشرطية.
البدء مجانًا

تعلم TypeScript مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
101
الدروس
352

الأسئلة الشائعة

هل درس «‏keyof وأنواع الوصول المفهرس» مجاني؟

نعم — نص درس «‏keyof وأنواع الوصول المفهرس» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

ماذا ستتعلم في «‏keyof وأنواع الوصول المفهرس»؟

اصلوا إلى أنواع خصائص الكائنات ديناميكيًا باستخدام keyof وT[K] تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «‏keyof وأنواع الوصول المفهرس»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ‏keyof وأنواع الوصول المفهرس
  2. قيود الأنواع العامة: تضييق معاملات الأنواع
  3. الأنواع الشرطية: ‏T extends U ? X : Y
  4. الأنواع الشرطية التوزيعية
← العودة إلى TypeScript Academy