تعريف أنواع الدوال
جزء من قسم مقدمة إلى TypeScript في رحلة JavaScript على Coddy. الدرس 28 من 73.
تتيح لك TypeScript إنشاء اسم مستعار للنوع (type alias) لتوقيع الدالة، والذي يعمل بمثابة مخطط يجب أن تتطابق معه الدوال.
يُعرّف الاسم المستعار لنوع الدالة (function type alias) شكل الدالة باستخدام الكلمة المفتاحية type. تُظهر الصيغة أنواع المعاملات بين قوسين متبوعة بسهم ونوع القيمة المرجعة:
type MathOperation = (a: number, b: number) => number;
const add: MathOperation = (a, b) => {
return a + b;
};
const multiply: MathOperation = (a, b) => {
return a * b;
};في هذا المثال، MathOperation هو اسم مستعار للنوع (type alias) يصف أي دالة تأخذ رقمين وتُرجع رقماً. كلا من add و multiply يتوافقان مع هذا النوع، مما يضمن الاتساق عبر قاعدة الكود الخاصة بك.
التحدي
سهلقم بإنشاء اسم مستعار للنوع (type alias) باسم StringProcessor لوظيفة تأخذ معامل string واحدًا وتعيد string.
قم بإنشاء اسم مستعار للنوع باسم NumberCalculator لوظيفة تأخذ معاملين من نوع number وتعيد number.
قم بإنشاء اسم مستعار للنوع باسم BooleanChecker لوظيفة تأخذ معامل string وتعيد boolean.
الآن قم بتنفيذ الوظائف التالية التي تتوافق مع هذه الأسماء المستعارة للأنواع:
- قم بإنشاء وظيفة باسم
toUpperCaseمن نوعStringProcessorتقوم بتحويل السلسلة النصية المدخلة إلى أحرف كبيرة (uppercase) - قم بإنشاء وظيفة باسم
addPrefixمن نوعStringProcessorتضيف البادئة"Processed: "إلى السلسلة النصية المدخلة - قم بإنشاء وظيفة باسم
divideمن نوعNumberCalculatorتقوم بقسمة الرقم الأول على الرقم الثاني - قم بإنشاء وظيفة باسم
powerمن نوعNumberCalculatorترفع الرقم الأول إلى أس الرقم الثاني (استخدمMath.pow) - قم بإنشاء وظيفة باسم
isEmptyمن نوعBooleanCheckerتعيدtrueإذا كان طول السلسلة النصية 0، وإلا تعيدfalse - قم بإنشاء وظيفة باسم
startsWithAمن نوعBooleanCheckerتعيدtrueإذا كانت السلسلة النصية تبدأ بحرف "A" (حساس لحالة الأحرف)، وإلا تعيدfalse
اختبر وظائفك عن طريق استدعائها بالقيم التالية وطباعة النتائج:
- استدعِ
toUpperCaseمع"hello world" - استدعِ
addPrefixمع"data" - استدعِ
divideمع20و4 - استدعِ
powerمع3و4 - استدعِ
isEmptyمع"" - استدعِ
startsWithAمع"Apple"
اطبع كل نتيجة في سطر منفصل بالترتيب المحدد أعلاه.
جرّب بنفسك
// TODO: قم بإنشاء أسماء مستعارة للأنواع هنا
// StringProcessor, NumberCalculator, BooleanChecker
// TODO: قم بتنفيذ الدوال هنا
// toUpperCase, addPrefix, divide, power, isEmpty, startsWithA
// 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