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. يُنصح بكتابة تعليق صريح دائمًا لتجنّب هذا السلوك الضمني.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%