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

ما الأنواع الشرطية؟
ما الأنواع الشرطية؟
تتيح لك الأنواع الشرطية تعريف نوع يعتمد على نوع آخر. الصياغة الأساسية هي:
T extends U ? X : Y
وهذا يعني: إذا كان T يمتد إلى U، فسيكون النوع هو X، وإلا فسيكون Y.
مثال أساسي على الأنواع الشرطية
مثال أساسي على الأنواع الشرطية
إليك مثالًا بسيطًا:
type IsString<T> = T extends string ? 'Yes' : 'No';
// Test cases
type A = IsString<string>; // 'Yes'
type B = IsString<number>; // 'No'استخدام الأنواع الشرطية مع التحميل الزائد للدوال
استخدام الأنواع الشرطية مع التحميل الزائد للدوال
يمكن للأنواع الشرطية تبسيط التحميل الزائد للدوال من خلال تحديد أنواع القيم المُعادة ديناميكيًا:
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;
function getData(): string {
return 'Hello';
}
type DataType = ReturnType<typeof getData>; // stringالأنواع الشرطية التوزيعية
الأنواع الشرطية التوزيعية
عند تطبيق الأنواع الشرطية على أنواع الاتحاد، فإنها تتوزع على كل عضو من أعضاء الاتحاد:
type ToArray<T> = T extends any ? T[] : never;
type A = ToArray<string | number>;
// A = string[] | number[]دمج الأنواع الشرطية مع الأنواع المعيّنة
دمج الأنواع الشرطية مع الأنواع المعيّنة
يمكنك دمج الأنواع الشرطية مع الأنواع المعيّنة لإجراء تحويلات قوية على الأنواع:
type User = {
id: number;
name: string;
isAdmin?: boolean;
};
type MakeRequired<T> = {
[K in keyof T]-?: T[K] extends undefined ? never : T[K];
};
type RequiredUser = MakeRequired<User>;
// { id: number; name: string; isAdmin: never; }حالات الاستخدام الشائعة للأنواع الشرطية
حالات الاستخدام الشائعة للأنواع الشرطية
تُستخدم الأنواع الشرطية عادةً في:
- استنتاج أنواع القيم المُعادة أو المعلمات.
- تحويل أنواع الاتحاد والتقاطع.
- إنشاء أنواع أدوات مثل
ExcludeوExtractوNonNullable.
مهمة تدريبية
مهمة تدريبية
أنشئ نوعًا شرطيًا يتحقق مما إذا كان النوع مصفوفة، ويُعيد نوع عناصرها إذا كان كذلك؛ وإلا فيُعيد النوع نفسه.
تهانينا!
تهانينا!
لقد تعلمت كيفية استخدام الأنواع الشرطية لإنشاء تعريفات أنواع ديناميكية وقابلة لإعادة الاستخدام في TypeScript. مارس هذه المفاهيم لكتابة شيفرة TypeScript أكثر قوة ومرونة!

الأسئلة الشائعة
هل درس «الأنواع الشرطية» مجاني؟
نعم — نص درس «الأنواع الشرطية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «الأنواع الشرطية»؟
استكشف كيف تتيح لك الأنواع الشرطية إنشاء أنواع تتكيف ديناميكيًا بناءً على الشروط، مما يتيح تعريفات أنواع مرنة قابلة لإعادة الاستخدام تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟
لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.
كم من الوقت يستغرق درس «الأنواع الشرطية»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟
نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تضييق الأنواع المتقدم
- ميزات الفئات المتقدمة
- الأنواع الشرطية