Menu
CoddyTech
flag Ar iconالعربيةdown icon

واجهات الـ Generic

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

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

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

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

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

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

const stringContainer: Container<string> = {
  value: "hello",
  isEmpty: false
};
const numberContainer: Container<number> = {
  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

تدرّب بنفسك: Playground لـ TypeScript