[T, U] نوع الصفوف (tuple)
آخر تحديث: 2026-10-22
[T, U] نوع الصفوف (tuple)
الصف (tuple) نوع مصفوفة بطول ثابت ولكل موضع نوعه الخاص، وهو مناسب للبيانات التي يحمل فيها الموضع نفسه معنى، مثل الإحداثيات وأزواج المفتاح/القيمة والقيم المتعددة المُعادة من الدوال.
| المجموعة | الأنواع الأساسية |
|---|---|
| النوع | نوع |
| الوضع الصارم | غير مطلوب |
ℹ️ معلومة يحوّل المحرر لغة TypeScript إلى JavaScript ثم يشغّلها (بدون فحص أنواع)؛ راجع ناتج كل مثال لنتيجة فحص الأنواع.
📝 الصيغة
type Point = [number, number];
type Named = [name: string, age: number]; // صف مُسمّى
let pair: Point = [3, 4];
⚙️ المعاملات
| [T, U] | يعلن الأنواع حسب الموضع: الموضع 0 من النوع T والموضع 1 من النوع U، والطول ثابت كذلك |
|---|---|
| [lat: number] | الأسماء الدلالية: [lat: number, lng: number] تسمّي كل موضع وتؤثر في القراءة فقط |
القيمة المُعادة:لا قيمة مُعادة — الصف مفهوم خاص بطبقة الأنواع فقط، وفي وقت التشغيل هو مصفوفة عادية.
▶ مثال
عدّل الكود أدناه واضغط «جرّب» لرؤية نتيجة التحويل:
الناتج:
rgb(255, 0, 0)
(مخرجات التشغيل بعد التحويل؛ كلٌّ من red.push("x") و red = [255, 0] يؤدي إلى خطأ ترجمة)
💡 نقاط مهمة
ℹ️ معلومة الصف في وقت التشغيل مصفوفة عادية؛ فقيود الطول موجودة في زمن الترجمة فقط.
💡 تلميح الصفوف المسماة مثل [lat: number, lng: number] تجعل التفكيك وتلميحات IDE أكثر دلالة، ويُنصح بها بقوة في سيناريوهات القيم المتعددة المُعادة.
⚠️ تنبيه لا يزال بإمكان push إضافة عناصر من الأنواع المعلنة بما يتجاوز الطول الثابت: فـ [number, number].push(1) لا يخطئ. فانضباط دلالة المواضع مسؤولية المبرمج.
🏷️ الأنواع الأساسية ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريبًا.
📚 دروس ذات صلة
❓ أسئلة شائعة
س ما الفرق بين الصف والمصفوفة؟
ج المصفوفة طولها متغير وعناصرها من نوع واحد؛ والصف طوله ثابت ولكل موضع نوعه. استخدم الصف عندما يكون "لكل موضع معنى مختلف" (مثل [lng, lat])، والمصفوفة للبيانات التجميعية.
س هل يمكن أن تكون عناصر الصف اختيارية؟
ج نعم: [string, number?] تعني أن الموضع الثاني قد يغيب؛ ويجب أن تأتي العناصر الاختيارية في النهاية.
س ما علاقة الصف بالمعاملات المتبقية (rest)؟
ج المعاملات المتبقية صف بطبيعتها: function f(...args: [string, number]) تحدد بدقة أنه عند الاستدعاء تُمرَّر سلسلة نصية أولًا ثم عدد.