TypeScript • المستوى الثاني • الدرس 3
العودة لفهرس المستوىأنواع التقاطع والتجميع (Intersection & Tuples)
أهداف الدرس العلمية
- دمج عدة أنواع باستخدام الرمز
&لبناء كائنات مركبة (Intersection Types). - استخدام
Tuplesلتحديد عدد وترتيب ونوع عناصر المصفوفة بدقة بدلاً من المصفوفات العادية. - التعامل مع الاستجابات الثنائية والمركبة (مثل رموز حالة HTTP أو الإحداثيات).
- تجنب أخطاء ترتيب البيانات في المصفوفات غير الصريحة.
1. ما هي Intersection Types؟
تتيح لك الـ Intersection Types (&) دمج خصائص واجهتين أو أكثر بداخل نوع واحد. الكائن الناتج يجب أن يحتوي على جميع الخصائص المطلوبة من كافة الأنواع التي تم دمجها.
typescript
type HasName = { name: string };
type HasAge = { age: number };
// الكائن الشخصي يحب أن يجمع الاسم والعمر معاً
type PersonProfile = HasName & HasAge;
const user: PersonProfile = {
name: "علي",
age: 30
};2. ما هي الـ Tuples؟
📦 مصفوفات ثابته الترتيب
الـ Tuple هو نوع خاص من المصفوفات يكون فيه عدد العناصر محدداً، وكل عنصر في موقع معين (Index) له نوع بيانات صريح وخاص به.
📍 استخدام شائع
تُستخدم الـ Tuples بكثرة للقيم المزدوجة مثل الإحداثيات [lat, lng]، مخرجات React Hooks مثل [value, setValue]، أو استجابات السيرفر [code, message].
التطبيق العملي المباشر
تحدي الدرس الثالث: تعديل قيمة Tuple ودمج نوع إضافي
قم بالتعديل على الكود بداخل المحرر أدناه لتطبيق ما يلي:
- قم بتعديل قيم
responseTupleليصبح رمز الاستجابة404والرسالة النصية"Not Found". - أنشئ نوعاً جديداً باسم
AdminPermissionsيحتوي على:role: stringوaccessLevel: number. - قم بتوسيع الـ Intersection ليشمل
Person & Employee & AdminPermissionsمع تحديث كائنstaffبالخصائص الجديدة. - اطبع تفاصيل
staffوresponseTupleبالكونسول واضغط "تشغيل الكود".
⏳ جارٍ تحميل المحرر التفاعلي...