0Pricing
TypeScript Academy · درس

الواجهات العامة والأسماء المستعارة للأنواع

طبّقوا الأنواع العامة على الواجهات والأنواع المخصّصة

الواجهات العامة والأسماء المستعارة للأنواع درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

مرحبًا

لا تقتصر الأنواع العامة على الدوال. فالواجهات والأسماء المستعارة للأنواع تقبل أيضًا معاملات الأنواع، مما يجعلها قابلة لإعادة الاستخدام مع أنواع عديدة.

صياغة الواجهة العامة

أضف `` بعد اسم الواجهة لجعلها عامة. استخدم T في أنواع الخصائص وتواقيع الدوال.
interface Box<T> {
  value: T;
  unwrap(): T;
}
const box: Box<number> = { value: 42, unwrap() { return this.value; } };

الاسم المستعار العام للنوع

تستخدم الأسماء المستعارة للأنواع صياغة `` نفسها.
type Maybe<T> = T | null | undefined;
type Pair<A, B> = { first: A; second: B };
const p: Pair<string, number> = { first: 'Alice', second: 30 };

واجهة المستودع العامة

من حالات الاستخدام الشائعة: واجهة مستودع عامة تعمل مع أي نوع من الكيانات.
interface Repository<T> {
  findById(id: number): T | null;
  findAll(): T[];
  save(item: T): void;
  delete(id: number): void;
}

تنفيذ واجهة عامة

وفّر وسيطة النوع عند تنفيذ واجهة عامة.
class UserRepo implements Repository<User> {
  findById(id: number): User | null { return null; }
  findAll(): User[] { return []; }
  save(user: User): void {}
  delete(id: number): void {}
}

توسيع الواجهات العامة

يمكن للواجهات العامة توسيع واجهات عامة أخرى.
interface Named<T> { name: T; }
interface NamedAndAged<T> extends Named<T> { age: number; }

نوع الاستجابة العام

نوع عام لاستجابة API يغلّف أي حمولة بيانات.
type ApiResponse<T> = {
  status: 'success' | 'error';
  data: T;
  timestamp: number;
};
const res: ApiResponse<User[]> = { status: 'success', data: [], timestamp: Date.now() };

معاملات أنواع متعددة في الواجهات

تدعم الواجهات معاملات أنواع متعددة.
interface KeyValue<K, V> {
  key: K;
  value: V;
}
const kv: KeyValue<string, number> = { key: 'age', value: 30 };

دالة عامة في واجهة غير عامة

يمكن أن تحتوي الواجهة على دوال عامة دون جعل الواجهة بأكملها عامة.
interface Transformer {
  transform<T, U>(input: T, fn: (val: T) => U): U;
}

الأنواع العامة التكرارية

يمكن للأنواع العامة الإشارة إلى نفسها لتمثيل هياكل الأشجار أو القوائم المرتبطة.
interface TreeNode<T> {
  value: T;
  children: TreeNode<T>[];
}

الاسم المستعار للنوع مقارنةً بالواجهة للأنواع العامة

يدعم كلاهما الأنواع العامة بالقدر نفسه. فضّل interface للعقود التي تنفذها الفئات، وفضّل type للأنواع العامة التي تتضمن اتحادًا، مثل Maybe.

فحص سريع

ماذا توفّر عند تنفيذ `interface Repository`؟

مراجعة

تستخدم الواجهات العامة والأسماء المستعارة للأنواع للعمل مع أي نوع. وهي تتيح إنشاء عقود قابلة لإعادة الاستخدام للمستودعات وأغلفة الاستجابات وهياكل البيانات التكرارية. نفّذها من خلال توفير وسيطة النوع المحددة.

الأسئلة الشائعة

هل درس «الواجهات العامة والأسماء المستعارة للأنواع» مجاني؟

نعم — نص درس «الواجهات العامة والأسماء المستعارة للأنواع» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 4 دروس في المجموع.

ماذا ستتعلم في «الواجهات العامة والأسماء المستعارة للأنواع»؟

طبّقوا الأنواع العامة على الواجهات والأنواع المخصّصة تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «الواجهات العامة والأسماء المستعارة للأنواع»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الدوال العامة: معاملات الأنواع
  2. الواجهات العامة والأسماء المستعارة للأنواع
  3. قيود الأنواع العامة باستخدام extends
  4. معاملات الأنواع الافتراضية
← العودة إلى TypeScript Academy