Array<T> أنواع المصفوفات
آخر تحديث: 2026-10-22
Array<T> أنواع المصفوفات
تصف أنواع المصفوفات "قائمة من العناصر من النوع نفسه"، وتُكتب بصيغتين متكافئتين تمامًا: T[] أو Array<T>. استخدمها للقوائم والمجموعات والبيانات الدفعية.
| المجموعة | الأنواع الأساسية |
|---|---|
| النوع | نوع |
| الوضع الصارم | غير مطلوب |
ℹ️ معلومة يحوّل المحرر لغة TypeScript إلى JavaScript ثم يشغّلها (بدون فحص أنواع)؛ راجع ناتج كل مثال لنتيجة فحص الأنواع.
📝 الصيغة
let ids: number[] = [1, 2, 3];
let names: Array<string> = ["Ada", "Li"];
let mixed: (string | number)[] = [1, "a"];
⚙️ المعاملات
| T[] | الصيغة المختصرة T[]، وهي الخيار المفضّل يوميًا |
|---|---|
| Array<T> | الصيغة العامة Array<T>، وأسهل قراءةً عندما يكون نوع العناصر معقدًا (كأن يحتوي اتحادًا) |
القيمة المُعادة:لا قيمة مُعادة — أنواع المصفوفات مفهوم خاص بطبقة الأنواع فقط، وفي وقت التشغيل هي مجرد مصفوفة JS عادية.
▶ مثال
عدّل الكود أدناه واضغط «جرّب» لرؤية نتيجة التحويل:
الناتج:
pen, book, bag
total: 50.5
(مخرجات التشغيل بعد التحويل؛ إدخال سلسلة نصية إلى prices عبر push يؤدي إلى خطأ ترجمة)
💡 نقاط مهمة
ℹ️ معلومة الصيغتان T[] و Array<T> متكافئتان تمامًا؛ يكفي أن يختار الفريق أسلوبًا واحدًا ويلتزم به.
⚠️ تنبيه لا تُقيّد أنواع المصفوفات الطول ولا الترتيب؛ وعندما تحتاج إلى "طول ثابت ومعنى مختلف لكل موضع" استخدم الصفوف (tuple).
💡 تلميح المصفوفات للقراءة فقط تُكتب readonly T[]، فتمنع التعديل غير المقصود عبر push/splice وتشير إلى أن الدالة لن تغيّر المصفوفة المُمرَّرة إليها.
🏷️ الأنواع الأساسية ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريبًا.
📚 دروس ذات صلة
❓ أسئلة شائعة
س كيف أعلّق على مصفوفة قد تفتقد عناصرها؟
ج استخدم (T | undefined)[] مع ضرورة تضييق النوع بعد الوصول إلى العنصر أو معالجته بـ ?.؛ ولا تكذب باستخدام T[] زاعمًا أن العناصر موجودة دائمًا.
س ما الفرق بين المصفوفة والصف (tuple)؟
ج المصفوفة طولها متغير وعناصرها من نوع واحد؛ أما الصف فطوله ثابت ولكل موضع نوعه. استخدم الصف للإحداثيات مثل [number, number]، والمصفوفة لقوائم مثل عناصر سلة الشراء.
س ما نوع const arr = []؟
ج في الوضع الصارم يصبح "مصفوفة متطورة": يبدأ any[] ثم يتضيق تدريجيًا مع كل عنصر تُضيفه بـ push. يُنصح بكتابة تعليق صريح دائمًا لتجنّب هذا السلوك الضمني.