تحديد أنواع Arrow Functions
جزء من قسم مقدمة إلى TypeScript في رحلة JavaScript على Coddy. الدرس 23 من 73.
بالنسبة للدوال السهمية (arrow functions)، تقوم بإضافة تعليقات النوع (type annotations) إلى المعاملات داخل الأقواس، تماماً مثل الدوال العادية. يأتي تعليق نوع الإرجاع بعد قائمة المعاملات ولكن قبل السهم (=>):
const multiply = (a: number, b: number): number => {
return a * b;
};
const greet = (name: string): string => `Hello, ${name}!`;الفرق الرئيسي عن تصريحات الدوال العادية هو أن تعليق نوع الإرجاع يظهر قبل السهم بدلاً من ظهوره بعد اسم الدالة. هذا يحافظ على سلامة الأنواع في TypeScript مع الحفاظ على الصيغة البرمجية النظيفة والحديثة التي تجعل الدوال السهمية شائعة.
التحدي
سهلقم بتحويل إعلان الدالة العادية التالي إلى دالة سهم (arrow function) مع الحفاظ على جميع تعليقات النوع (type annotations):
function subtract(a: number, b: number): number {
return a - b;
}قم بإنشاء دالة سهم باسم subtract تقوم بنفس العملية مع نفس أنواع المعاملات ونوع الإرجاع.
ثم قم بإنشاء دالتين سهم إضافيتين:
- دالة سهم باسم
createMessageتأخذ معاملاًtextمن نوعstringوتعيد سلسلة نصية بالتنسيق"Message: [text]". قم بتضمين تعليقات نوع صريحة لكل من المعامل ونوع الإرجاع. - دالة سهم باسم
isPositiveتأخذ معاملاًnumمن نوعnumberوتعيدtrueإذا كان الرقم أكبر من 0، وإلا تعيدfalse. قم بتضمين تعليقات نوع صريحة لكل من المعامل ونوع الإرجاع.
اختبر دوال السهم الخاصة بك عن طريق استدعائها بالقيم التالية وطباعة النتائج:
- استدعِ
subtractمع10و3 - استدعِ
createMessageمع"Hello World" - استدعِ
isPositiveمع-5 - استدعِ
isPositiveمع8
اطبع كل نتيجة في سطر منفصل بالترتيب المحدد أعلاه.
جرّب بنفسك
// TODO: قم بتحويل الدالة العادية إلى دالة سهمية وأنشئ الدوال السهمية الإضافية
// TODO: أنشئ دالة الطرح السهمية مع توضيحات النوع (type annotations)
// TODO: أنشئ دالة createMessage السهمية مع توضيحات النوع (type annotations)
// TODO: أنشئ دالة isPositive السهمية مع توضيحات النوع (type annotations)
// TODO: اختبر الدوال السهمية الخاصة بك واطبع النتائجيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس مقدمة إلى TypeScript
1البداية مع TS
ما هي TypeScript؟لماذا نستخدم TypeScript؟أول كود TypeScript لكعملية الـ Compilation والأخطاءملخص: مقدمة في TS4التعامل مع الدوال
تحديد أنواع المعاملات وقيم الإرجاعتحديد أنواع Arrow Functionsنوع الإرجاع 'void'المعاملات الاختيارية باستخدام '?'القيم الافتراضية للمعاملاتتحديد أنواع Rest Parametersتعريف أنواع الدوالملخص: بناء دوال محددة الأنواع2الأنواع الأساسية
الأنواع الأساسية: str, num, booleanالنوع 'any': مخرج الهروبالنوع 'unknown'التعامل مع 'null' و 'undef'استنتاج الأنواع في التطبيق العمليتوضيحات الأنواع الصريحةمراجعة: تدريب على الأنواع الأساسية5الأنواع: الأسماء المستعارة، الاتحادات والتقاطعات
الأسماء المستعارة للأنواع الأساسية (Primitives)أنواع الاتحاد ('|')التعامل مع أنواع الاتحادالأنواع الحرفية (Literal Types)أنواع التقاطع ('&')دمج الأسماء المستعارة للأنواعملخص: تركيبات الأنواع المتقدمة3هياكل البيانات: المصفوفات و Tuple
المصفوفات محددة النوع (Typed Arrays)معدل 'readonly' للمصفوفاتما هو الـ Tuple؟تعريف والوصول إلى الـ Tuplesتفكيك الـ Tuples (Destructuring)الـ Tuples للقراءة فقط (Readonly)المصفوفات محددة النوع متعددة الأبعاداستخدام Spread Operator مع المصفوفاتملخص: المصفوفات و Tuples6تحديد أنواع الكائنات والواجهات
توصيف أنواع الكائنات المضمنة (Inline)الأسماء المستعارة للأنواع (Type Aliases) للكائناتمقدمة عن الواجهات (Interfaces)الواجهات (Interfaces) مقابل الأسماء المستعارة للأنواع (Type Aliases)الخصائص الاختيارية وخصائص القراءة فقط (Readonly)توسيع الواجهات والأنواعإضافة الدوال (Methods) إلى الواجهاتملخص: تحديد هياكل الكائناتتدرّب بنفسك: Playground لـ TypeScript