تخطَّ إلى المحتوى

Record<Keys, Type>

بناء نوع كائن بمفاتيح وقيم محدَّدة Record<Keys, Type>

Record<Keys, Type> تبني نوع كائن مفاتيحه من Keys وكل قيمة فيه من نوع Type — بديل مباشر لكتابة index signature يدويًّا.

Record مفيدة لوصف كائنات تُستخدم كخرائط (map): كل مفتاح من مجموعة محدَّدة (اتحاد نصوص أو string عام)، وكل قيمة بنفس النوع. تحلّ محل كتابة `{ [key: string]: Type }` يدويًّا، وتتيح أيضًا مفاتيح محدودة كاتحاد حرفي فتفرض تغطية كل المفاتيح.

الصياغة

Record<Keys, Type>

📄 مثال

type Plan = "free" | "pro" | "enterprise";

const monthlyPrice: Record<Plan, number> = {
  free: 0,
  pro: 29,
  enterprise: 99,
};

// نسيان خطة واحدة يسبب خطأ ترجمة فورًا

أهم النقاط

العنصرالوظيفة
Keysاتحاد الأسماء المسموحة كمفاتيح، أو string/number للمفاتيح المفتوحة
Typeنوع كل قيمة داخل الكائن

💡 نصائح عملية

  • استخدم اتحادًا حرفيًّا كـ Keys عندما تريد أن يفرض المترجم تغطية كل الحالات (خرائط حالة، أذونات، ترجمات)

⚠️ أخطاء شائعة

  • استخدام Record<string, Type> عندما المفاتيح فعليًّا محدودة ومعروفة — تفقد فحص اكتمال التغطية

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار TYPESCRIPT الكامل بالعربي.