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

واجهات الـ Generic

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

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

إليك كيفية إنشاء interface generic باستخدام بناء جملة معامل النوع نفسه:

interface Container {
  value: T;
  isEmpty: boolean;
}

ينشئ <T> بعد اسم الواجهة معلمة نوع يمكن استخدامها في جميع أنحاء تعريف الواجهة. في هذا المثال، ستكون الخاصية value من أي نوع تحدده عند استخدام الواجهة، بينما تظل isEmpty من النوع الثابت boolean.

عند استخدام واجهة generic، تحدد النوع الملموس بين قوسين زاويين:

const stringContainer: Container = {
  value: "hello",
  isEmpty: false
};

const numberContainer: Container = {
  value: 42,
  isEmpty: false
};
challenge icon

التحدي

سهل

أنشئ واجهة عامة باسم Result يمكنها الاحتفاظ ببيانات من أي نوع إلى جانب معلومات النجاح.

يجب أن تحتوي الواجهة على خاصيتين:

  • success من النوع boolean
  • data من النوع T (معامل النوع العام)

أنشئ الكائنات التالية باستخدام واجهتك العامة:

  • stringResult من النوع Result<string> مع success: true وdata: "Operation completed"
  • numberResult من النوع Result<number> مع success: true وdata: 42
  • booleanResult من النوع Result<boolean> مع success: false وdata: false
  • arrayResult من النوع Result<string[]> مع success: true وdata: ["item1", "item2", "item3"]

أنشئ دالة عامة باسم processResult تقوم بما يلي:

  • تستخدم معامل نوع عام T
  • تأخذ معاملاً واحداً باسم result من النوع Result<T>
  • تعيد رسالة نصية
  • إذا كانت قيمة success هي true، تعيد "Success: [data]"
  • إذا كانت قيمة success هي false، تعيد "Failed: [data]"

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

  • اطبع نتيجة استدعاء processResult باستخدام stringResult
  • اطبع نتيجة استدعاء processResult باستخدام numberResult
  • اطبع نتيجة استدعاء processResult باستخدام booleanResult
  • اطبع نتيجة استدعاء processResult باستخدام arrayResult
  • اطبع stringResult.data

جرّب بنفسك

// TODO: اكتب الكود الخاص بك هنا

// أنشئ الواجهة العامة Result


// أنشئ الكائنات باستخدام الواجهة Result


// أنشئ الدالة العامة processResult


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

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

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

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