type الأسماء البديلة للأنواع
آخر تحديث: 2026-10-22
type الأسماء البديلة للأنواع
تمنح type أي نوع اسمًا: الكائنات والاتحادات والصفوف والدوال والحرفيات كلها قابلة للتسمية، فهي أنفس طرق تسمية الأنواع شمولًا، وتقف جنبًا إلى جنب مع interface.
| المجموعة | تركيب الأنواع |
|---|---|
| النوع | بناء الجملة |
| الوضع الصارم | غير مطلوب |
ℹ️ معلومة يحوّل المحرر لغة TypeScript إلى JavaScript ثم يشغّلها (بدون فحص أنواع)؛ راجع ناتج كل مثال لنتيجة فحص الأنواع.
📝 الصيغة
type ID = string | number;
type Point = { x: number; y: number };
const origin: Point = { x: 0, y: 0 };
⚙️ المعاملات
| type X = T | الطرف الأيمن من علامة يساوي يمكن أن يكون أي تعبير نوعي: اتحادات وتراكيب وصفوف وأنواع شرطية |
|---|
القيمة المُعادة:لا قيمة مُعادة — type مفهوم خاص بطبقة الأنواع فقط ويختفي بعد الترجمة.
▶ مثال
عدّل الكود أدناه واضغط «جرّب» لرؤية نتيجة التحويل:
الناتج:
#42 #A1 0 0
(مخرجات التشغيل بعد التحويل؛ إضافة z: 1 إلى origin تُطلق فحص الخصائص الزائدة)
💡 نقاط مهمة
ℹ️ معلومة يمكن لـ type التعبير عن اتحادات وصفوف وأنواع مخطَّطة وشرطية عجزت interface عنها؛ أما دمج الإعلانات الحصري لـ interface فلا يملكه type.
💡 تلميح تسمية البنى المعقدة تقصّر رسائل الخطأ — فتعرض الأخطاء الاسم البديل بدل كتلة بنية طويلة.
⚠️ تنبيه لا يجوز تكرار إعلان type بالاسم نفسه (يخطئ مباشرةً بتعريف مكرر)، على خلاف interface التي تندمج؛ وعند الحاجة إلى "توسيع تدريجي" ركِّب الامتدادات عبر الأنواع التركيبية.
🏷️ تركيب الأنواع ذو صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريبًا.
📚 دروس ذات صلة
❓ أسئلة شائعة
س أيهما أستخدم فعلًا: type أم interface؟
ج يكفي أن يوحّد الفريق اختيارًا واحدًا. قاعدة إرشادية: استخدم interface لبنية كائن خالصة قد تُدمج أو تُوسَّع من مكتبة؛ و type كلما دخل الاتحاد أو تركيب أنواع الأدوات على المعادلة.
س هل يمكن لـ type الإشارة إلى نفسه تكراريًا؟
ج نعم: type JSON = string | number | boolean | null | JSON[] | { [k: string]: JSON }. وتدعم interface التكرار كذلك.
س هل تؤثر الأسماء التي تمنحها type على وقت التشغيل؟
ج لا تؤثر. فـ type اسم بديل في زمن الترجمة فقط، يختفي كليًا بعد التحويل، ولا يبقى في وقت التشغيل إلا القيم نفسها.