🚀 دليلك الشامل لفهم الـ Tuples في TypeScript
بعد أن تعلمت كيف تتعامل مع المصفوفات (Arrays) العادية، حان الوقت لنتعرف على نوع خاص جداً من المصفوفات يسمى الـ Tuples.
إذا كنت تتساءل: "ما هو الـ Tuple؟ ولماذا أحتاجه بينما أملك المصفوفات العادية؟"، فأنت في المكان الصحيح. دعنا نبدأ الرحلة! 🌟
❓ ما هي الـ Tuples؟
في TypeScript، الـ Tuple هي مصفوفة ذات طول ثابت وترتيب محدد لأنواع البيانات.
ببساطة، بينما تسمح المصفوفة العادية (Array) بإضافة أي عدد من العناصر من نفس النوع، فإن الـ Tuple تجبرك على تحديد:
- عدد العناصر بالضبط.
- نوع كل عنصر بناءً على مكانه (ترتيبه).
مثال توضيحي: تخيل أنك تريد تخزين بيانات مستخدم بسيطة: (الاسم، والعمر). الاسم دائماً سيكون "نص" (string) والعمر دائماً سيكون "رقم" (number). هنا الـ Tuple هي الخيار المثالي! ✅
🛠️ كيف نقوم بتعريف الـ Tuple؟
لتعريف Tuple، نقوم بكتابة الأنواع داخل أقواس مربعة [] مفصولة بفاصلة، تماماً كما نفعل مع المصفوفات ولكن بتحديد النوع لكل عنصر.
إليك الطريقة البسيطة:
// تعريف Tuple يحتوي على نص ورقم
let user: [string, number];
// إسناد القيم للـ Tuple (يجب الالتزام بالترتيب والنوع)
user = ["Ahmed", 25]; // Correct ✅
// محاولة وضع القيم بترتيب خاطئ ستؤدي إلى خطأ برمجى
// user = [25, "Ahmed"]; // Error ❌
في المثال السابق، أخبرنا TypeScript أن المتغير user يجب أن يكون مصفوفة مكونة من عنصرين فقط: الأول string والثاني number.
⚠️ قواعد هامة عند استخدام الـ Tuples
لكي تستخدم الـ Tuples بشكل صحيح وتتجنب الأخطاء، يجب أن تضع في اعتبارك النقاط التالية:
1. الالتزام بالترتيب (Order Matters)
في الـ Tuple، الترتيب هو كل شيء. إذا حددت أن العنصر الأول string والثاني number فلا يمكنك عكسهما.
2. الالتزام بالطول (Fixed Length)
الـ Tuple مصممة لتكون ثابتة الطول. إذا عرفت Tuple من عنصرين، فلا يمكنك وضع عنصر واحد فقط أو ثلاثة عناصر عند البدء في تعريف القيمة.
لنلقِ نظرة على هذا المثال:
// تعريف Tuple لتخزين إحداثيات نقطة (X, Y)
let coordinates: [number, number];
coordinates = [10, 20]; // Correct ✅
// محاولة إضافة عنصر ثالث ستسبب خطأ في بعض الحالات أو تحذيراً
// coordinates = [10, 20, 30]; // Error ❌
💡 أمثلة واقعية وبسيطة
دعنا نطبق ما تعلمناه في سيناريوهات من الحياة الواقعية:
المثال الأول: تخزين حالة الطلب (Order Status) نريد تخزين رقم الطلب وحالته (هل تم الشحن أم لا).
// تعريف Tuple: رقم الطلب (number) وحالة الشحن (boolean)
let orderStatus: [number, boolean];
orderStatus = [101, true]; // الطلب رقم 101 تم شحنه ✅
المثال الثاني: تخزين بيانات اللون (RGB) ألوان الشاشات تتكون من ثلاثة أرقام (الأحمر، الأخضر، الأزرق).
// تعريف Tuple لثلاثة أرقام
let rgbColor: [number, number, number];
rgbColor = [255, 0, 0]; // اللون الأحمر ✅
🎓 ملخص سريع لما تعلمناه
- الـ Tuple هي مصفوفة محددة الطول والأنواع.
- نستخدمها عندما نعرف مسبقاً عدد العناصر وأنواعها وترتيبها.
- يتم تعريفها بكتابة الأنواع داخل
[]مثل:[string, number]. - تضمن لنا الـ Tuple دقة أكبر في البيانات وتمنع حدوث أخطاء في ترتيب المعلومات.
⏭️ ماذا سنتعلم في الدرس القادم؟
الآن بعد أن أتقنت التعامل مع الـ Tuples، قد تتساءل: "ماذا لو أردت إنشاء مجموعة من البيانات التي تتكرر بشكل منظم، ولكن مع تسمية كل قيمة بدلاً من الاعتماد على ترتيبها فقط؟".
في الدرس القادم، سننتقل إلى مفهوم قوي جداً ومهم في TypeScript وهو "Enums"، حيث سنتعلم كيف ننشئ مجموعة من القيم الثابتة والمسمّاة لتسهيل قراءة الكود وإدارته. نراك هناك! 👋
🎓 اختبر معلوماتك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال