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 الكامل بالعربي.