Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مصفوفات الـ Generic

جزء من قسم مقدمة إلى TypeScript في رحلة JavaScript على Coddy. الدرس 60 من 73.

تعمل arrays والأنواع العامة معًا بشكل رائع في TypeScript. عندما تعلّمت عن arrays المعرّفة بأنواع سابقًا، استخدمت صياغة T[] لتحديد أن array يمكن أن تحتوي فقط على عناصر من نوع محدد. تمنحك الأنواع العامة طريقة أخرى للتعبير عن هذا المفهوم نفسه.

يوفّر TypeScript صياغة بديلة للمصفوفات ذات الأنواع باستخدام تنسيق Array<T>:

// هذان التصريحان متكافئان:
let numbers1: number[] = [1, 2, 3];
let numbers2: Array<number> = [1, 2, 3];

تُعد صياغة Array<T> مفيدة بشكل خاص عند العمل مع generic function التي تعمل على arrays. فهي تجعل الطبيعة generic للكود أكثر وضوحًا وقابلية للقراءة، لا سيما عند إنشاء function يمكنها العمل مع arrays من أي نوع مع الحفاظ على أمان الأنواع.

challenge icon

التحدي

سهل

أنشئ دالة عامة باسم getFirstElement تأخذ مصفوفة من أي نوع وتُرجع العنصر الأول أو undefined إذا كانت المصفوفة فارغة.

يجب أن تقوم الدالة بـ:

  • استخدام معامل نوع عام T
  • قبول معامل واحد باسم arr من النوع Array<T>
  • إرجاع العنصر الأول من النوع T أو undefined
  • امتلاك تعليق نوع إرجاع صريح من T | undefined

أنشئ المصفوفات التالية باستخدام صيغة Array<T>:

  • stringArray من النوع Array<string> تحتوي على ["apple", "banana", "cherry"]
  • numberArray من النوع Array<number> تحتوي على [10, 20, 30, 40]
  • booleanArray من النوع Array<boolean> تحتوي على [true, false, true]
  • emptyStringArray من النوع Array<string> وهي فارغة

اختبر دالتك واطبع المخرجات التالية:

  • اطبع نتيجة استدعاء getFirstElement مع stringArray
  • اطبع نتيجة استدعاء getFirstElement مع numberArray
  • اطبع نتيجة استدعاء getFirstElement مع booleanArray
  • اطبع نتيجة استدعاء getFirstElement مع emptyStringArray
  • اطبع نتيجة استدعاء getFirstElement مع Array<string> جديدة تحتوي على ["single"]

جرّب بنفسك

// TODO: اكتب الكود الخاص بك هنا
// أنشئ الدالة العامة getFirstElement

// أنشئ المصفوفات المطلوبة باستخدام صيغة Array<T>

// اختبر الدالة واطبع النتائج
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس مقدمة إلى TypeScript

تدرّب بنفسك: مترجم JavaScript عبر الإنترنت