0Pricing
TypeScript Academy · درس

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

أنشئوا أسماء أنواع قابلة لإعادة الاستخدام باستخدام الكلمة المفتاحية type

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

مرحبًا

تمنحك البدائل النوعية اسمًا لأي تعبير نوع، سواء كان نوعًا بدائيًا أو اتحادًا أو تقاطعًا أو tuple أو كائنًا. وهي تجعل الأنواع المعقدة قابلة لإعادة الاستخدام وأسهل قراءة.

الكلمة المفتاحية type

أنشئ بديلًا نوعيًا باستخدام `type Name = TypeExpression`. ويمكن استخدامه في أي موضع كان سيُستخدم فيه النوع الأصلي.
type UserId = number;
type UserName = string;
type Point = { x: number; y: number };

تسمية أنواع الاتحاد

سمِّ أنواع الاتحاد المعقدة لجعل توقيعات الدوال أكثر قابلية للقراءة.
type StringOrNumber = string | number;
function format(val: StringOrNumber): string {
  return String(val);
}

تسمية أنواع الكائنات

تعمل البدائل النوعية للكائنات مثل الواجهات تمامًا في وصف بنى الكائنات.
type Product = {
  id: number;
  name: string;
  price: number;
};
const p: Product = { id: 1, name: 'Widget', price: 9.99 };

تسمية أنواع Tuple

سمِّ أنماط tuple الشائعة حتى لا تكرر بنيتها في كل موضع.
type Coordinate = [number, number];
type RGB = [number, number, number];
const pos: Coordinate = [10, 20];

تسمية أنواع الدوال

سمِّ توقيعات أنواع الدوال للحفاظ على نظافة قوائم المعلمات.
type Comparator<T> = (a: T, b: T) => number;
const numSort: Comparator<number> = (a, b) => a - b;

يمكن للبدائل النوعية استخدام Generics

مثل الواجهات، تدعم البدائل النوعية معلمات الأنواع العامة.
type Maybe<T> = T | null | undefined;
type Pair<A, B> = { first: A; second: B };

البدائل النوعية ذات الإشارة إلى نفسها

يمكن للبدائل النوعية الإشارة إلى نفسها لإنشاء هياكل بيانات递ursive مثل الأشجار والقوائم المرتبطة.
type TreeNode = {
  value: number;
  left?: TreeNode;
  right?: TreeNode;
};

لا يمكن إعادة فتح البدائل النوعية

على خلاف الواجهات، لا يمكن توسيع الأسماء المستعارة للأنواع بتصريحات إضافية بعد تعريفها، فهي ثابتة.
// Interface can be merged (declaration merging):
interface A { x: number; }
interface A { y: number; } // OK — A now has x and y

// Type alias cannot:
type B = { x: number };
// type B = { y: number }; // Error: duplicate identifier

الاتحاد المميّز باستخدام الأسماء المستعارة للأنواع

تُعدّ الأسماء المستعارة للأنواع مناسبة جدًا للاتحادات المميّزة، وهي نمط يجمع بين أنواع الاتحاد وخصيصة حرفية مشتركة.
type Success = { kind: 'success'; data: string };
type Failure = { kind: 'failure'; error: Error };
type Result = Success | Failure;

متى نفضّل type على interface

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

تحقّق سريع

ما الميزة التي تدعمها `interface` ولا تدعمها الأسماء المستعارة للأنواع `type`؟

مراجعة

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

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

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

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

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

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

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

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

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

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

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

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

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

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