0Pricing
TypeScript Academy · درس

الأنواع المُحوَّلة

تعلّم كيفية تحويل الأنواع الحالية إلى أنواع جديدة باستخدام الأنواع المُحوَّلة، مما يوفر مرونة في التعامل مع هياكل البيانات الديناميكية

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

مقدمة إلى الأنواع المُحوَّلة

مقدمة إلى الأنواع المُحوَّلة

تتيح لك الأنواع المُحوَّلة تحويل الأنواع الموجودة إلى أنواع جديدة من خلال تطبيق عمليات على كل خاصية في النوع.

وهي مفيدة لإنشاء هياكل أنواع مرنة وقابلة لإعادة الاستخدام في TypeScript.

الأنواع المُحوَّلة — رسم توضيحي 1

ما هي الأنواع المُحوَّلة؟

ما هي الأنواع المُحوَّلة؟

تستخدم الأنواع المُحوَّلة صيغة مثل { [P in keyof T]: T[P] } للتكرار على خصائص النوع T.

مثال أساسي على الأنواع المُحوَّلة

مثال أساسي على الأنواع المُحوَّلة

إليك مثالًا بسيطًا على استخدام نوع مُحوَّل لإنشاء نسخة للقراءة فقط من نوع:

type User = {
  name: string;
  age: number;
};

type ReadonlyUser = {
  readonly [P in keyof User]: User[P];
};

استخدام الأنواع المُحوَّلة المضمنة

استخدام الأنواع المُحوَّلة المضمنة

يوفر TypeScript عدة أنواع مُحوَّلة مضمنة، مثل:

  • Readonly<T>: تجعل جميع خصائص T للقراءة فقط.
  • Partial<T>: تجعل جميع خصائص T اختيارية.
  • Required<T>: تجعل جميع خصائص T مطلوبة.
type User = {
  name: string;
  age: number;
};

// Example of Partial
const user: Partial<User> = {
  name: 'John',
};

التعيين على الأنواع الاتحادية

التعيين على الأنواع الاتحادية

يمكن أيضًا استخدام الأنواع المُحوَّلة مع الأنواع الاتحادية لإنشاء أنواع جديدة ومُدمجة:

type Status = 'active' | 'inactive';

type StatusFlags = {
  [K in Status]: boolean;
};

const flags: StatusFlags = {
  active: true,
  inactive: false,
};

الأنواع المُحوَّلة الشرطية

الأنواع المُحوَّلة الشرطية

يمكنك استخدام الأنواع الشرطية مع الأنواع المُحوَّلة لإنشاء تحويلات أكثر تعقيدًا للأنواع.

type User = {
  name: string;
  age?: number;
};

type NonOptional<T> = {
  [K in keyof T]-?: T[K];
};

type RequiredUser = NonOptional<User>;

مثال متقدم: استبعاد الخصائص

مثال متقدم: استبعاد الخصائص

إليك كيفية إنشاء نوع مُحوَّل لاستبعاد خصائص معينة:

type User = {
  id: number;
  name: string;
  password: string;
};

type PublicUser = {
  [K in keyof User as Exclude<K, 'password'>]: User[K];
};

مهمة تدريبية

مهمة تدريبية

أنشئ نوعًا مُحوَّلًا يضيف المُعدِّل readonly إلى جميع خصائص النوع Product. اختبره من خلال التصريح عن متغير من النوع الجديد.

مراجعة الأنواع المعيّنة

تهانينا!

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

الأنواع المُحوَّلة — رسم توضيحي 10

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

هل درس «الأنواع المُحوَّلة» مجاني؟

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

ماذا ستتعلم في «الأنواع المُحوَّلة»؟

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

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

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

كم من الوقت يستغرق درس «الأنواع المُحوَّلة»؟

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

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

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

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

  1. أنواع keyof وأنواع البحث
  2. الأنواع المُحوَّلة
  3. أنواع التقاطع والاتحاد
← العودة إلى TypeScript Academy