0Pricing
TypeScript Academy · درس

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

قارن بين الأسماء المستعارة للأنواع والواجهات واستخدمها

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

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

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

مرحبًا بكم في الدرس التالي! ستتعلّمون في هذا الدرس عن الأسماء المستعارة للأنواع والواجهات في TypeScript، بما في ذلك أوجه الاختلاف والتشابه بينهما، ومتى تستخدمون كلًا منهما. لنبدأ!

الأسماء المستعارة للأنواع والواجهات — رسم توضيحي 1

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

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

يتيح الاسم المستعار للنوع تعريف اسم مخصص لنوع. ويمكن أن يمثّل أنواعًا بدائية أو كائنات أو حتى تواقيع دوال.

مثال:

المطلوب: أنشئ اسمًا مستعارًا لنوع كائن يمثّل كتابًا، واستخدمه لتعريف متغيّر.

type Point = {
  x: number;
  y: number;
};

let point: Point = { x: 10, y: 20 };
console.log(point); 
// Output: { x: 10, y: 20 }

ما الواجهات؟

ما الواجهات؟

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

مثال:

المطلوب: أنشئ واجهة لملف تعريف مستخدم، واستخدمها لتعريف متغيّر.

interface Point {
  x: number;
  y: number;
}

let point: Point = { x: 5, y: 15 };
console.log(point); 
// Output: { x: 5, y: 15 }

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

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

تشترك الأسماء المستعارة للأنواع والواجهات في بعض الميزات:

  • يمكن لكليهما وصف شكل كائن.
  • يمكن استخدام كليهما لتعريف أنواع الدوال.
  • يدعم كِلاهما توسيع أنواع أخرى.

مثال: نوع دالة:

المطلوب: عرّف اسمًا مستعارًا لنوع وواجهة لدالة، ثم استخدمهما.

type Add = (a: number, b: number) => number;
interface Subtract {
  (a: number, b: number): number;
}

let add: Add = (x, y) => x + y;
let subtract: Subtract = (x, y) => x - y;

console.log(add(5, 3)); 
// Output: 8
console.log(subtract(5, 3)); 
// Output: 2

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

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

فيما يلي أوجه الاختلاف الرئيسية:

  • الواجهات: يمكن دمجها (دمج التصريحات).
  • الأسماء المستعارة للأنواع: لا يمكن دمجها.
  • الأسماء المستعارة للأنواع: يمكنها تعريف أنواع الاتحاد والتقاطع.
  • الواجهات: مصمّمة أساسًا لوصف أشكال الكائنات.

مثال: أنواع الاتحاد باستخدام الأسماء المستعارة للأنواع:

المطلوب: استخدم اسمًا مستعارًا لنوع لتعريف نوع اتحاد، وعيّن قيمًا مختلفة لمتغيّر.

type StringOrNumber = string | number;

let value: StringOrNumber = "Hello";
value = 42;
// value = true; 
// Error: Type 'true' is not assignable to type 'StringOrNumber'.

توسيع الأنواع والواجهات

توسيع الأنواع والواجهات

يمكن لكل من الأسماء المستعارة للأنواع والواجهات توسيع أنواع أخرى:

  • الواجهات: استخدم الكلمة الأساسية extends.
  • الأسماء المستعارة للأنواع: استخدم عمليات التقاطع (&).

مثال:

المطلوب: وسّع اسمًا مستعارًا لنوع وواجهة لإنشاء أنواع جديدة.

interface Animal {
  name: string;
}

interface Dog extends Animal {
  breed: string;
}

type Bird = Animal & { canFly: boolean };

let myDog: Dog = { name: "Buddy", breed: "Golden Retriever" };
let myBird: Bird = { name: "Parrot", canFly: true };

console.log(myDog, myBird);

دمج التصريحات

دمج التصريحات

تدعم الواجهات دمج التصريحات، حيث تُدمج عدة تصريحات لواجهات تحمل الاسم نفسه في واجهة واحدة. ولا تدعم الأسماء المستعارة للأنواع هذه الميزة.

مثال:

المطلوب: أنشئ تصريحي واجهة بالاسم نفسه، واختبر دمج التصريحات.

interface Person {
  name: string;
}

interface Person {
  age: number;
}

let person: Person = { name: "Alice", age: 30 };
console.log(person); 
// Output: { name: "Alice", age: 30 }

متى تستخدم كلًا منهما؟

متى تستخدم كلًا منهما؟

فيما يلي بعض الإرشادات:

  • استخدم الواجهات لتعريف أشكال الكائنات، وعندما تحتاج إلى دمج التصريحات.
  • استخدم الأسماء المستعارة للأنواع لأنواع الاتحاد أو التقاطع، أو عند تعريف أنواع الدوال.

نصيحة: استخدم الخيار الأنسب لحالة الاستخدام لضمان الوضوح والاتساق!

أحسنتم!

أحسنتم!

تهانينا! لقد تعلّمتم أوجه التشابه والاختلاف بين الأسماء المستعارة للأنواع والواجهات في TypeScript، ومتى تستخدمون كلًا منهما. في الدرس التالي، سنستكشف ميزات TypeScript المتقدمة، مثل الأنواع الشرطية. واصلوا البرمجة!

الأسماء المستعارة للأنواع والواجهات — رسم توضيحي 10

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

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

نعم — نص درس «الأسماء المستعارة للأنواع والواجهات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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. أنواع الأدوات
  4. حُرّاس الأنواع
← العودة إلى TypeScript Academy