إضافة الدوال (Methods) إلى الواجهات
جزء من قسم Introduction To TypeScript في رحلة JavaScript على Coddy. الدرس 43 من 73.
تتيح لك واجهات TypeScript تعريف هذه السلوكيات من خلال تضمين تواقيع الأساليب إلى جانب تعريفات الخصائص.
تحدّد signature الخاصة بأسلوب في interface اسم الأسلوب ومعلماته ونوع القيمة التي يعيدها، من دون توفير التنفيذ الفعلي. وهذا ينشئ عقدًا يجب على أي كائن متوافق مع interface الوفاء به:
interface Person {
name: string;
age: number;
greet(): string; // توقيع الطريقة
}
let user: Person = {
name: "Alice",
age: 30,
greet() {
return `Hello, I'm ${this.name}`;
}
};تخبر توقيعة الطريقة greet(): string TypeScript بأن أي كائن ينفّذ الواجهة Person يجب أن يحتوي على طريقة greet لا تتلقى أي معلمات وتُرجع قيمة من النوع string. يمكن أن يختلف التنفيذ الفعلي بين الكائنات المختلفة، لكن يجب أن تتطابق التوقيعة تمامًا.
التحدي
سهلأنشئ interface باسم Calculator بالخصائص وmethods التالية:
brandمن typestringmodelمن typestringisScientificمن typeboolean- method باسم
addيأخذ معاملين من typenumberويُرجع قيمة من typenumber - method باسم
getInfoلا يأخذ أي معاملات ويُرجع قيمة من typestring
أنشئ interface باسم BankAccount بالخصائص وmethods التالية:
accountNumberمن typestringbalanceمن typenumberisActiveمن typeboolean- method باسم
depositيأخذ معاملًا من typenumberويُرجعvoid - method باسم
getBalanceلا يأخذ أي معاملات ويُرجع قيمة من typenumber
باستخدام interfaces الخاصة بك، أنشئ variables التالية:
- أنشئ variable باسم
myCalculatorمن typeCalculator، بقيمة brand هي"Casio"، وmodel هي"FX-991EX"، وisScientific بقيمةtrue، وmethod باسمaddيُرجع مجموع معامليه، وmethod باسمgetInfoيُرجع"[brand] [model]" - أنشئ variable باسم
savingsAccountمن typeBankAccount، بقيمة accountNumber هي"SAV-12345"، وbalance بقيمة1500، وisActive بقيمةtrue، وmethod باسمdepositيضيف المعامل إلى balance، وmethod باسمgetBalanceيُرجع balance الحالية
اطبع outputs التالية في أسطر منفصلة:
- استدعِ method
getInfoعلىmyCalculatorواطبع النتيجة - استدعِ method
addعلىmyCalculatorبالمعاملين15و27، واطبع النتيجة - استدعِ method
getBalanceعلىsavingsAccountواطبع النتيجة - استدعِ method
depositعلىsavingsAccountبالمعامل250 - استدعِ method
getBalanceعلىsavingsAccountمرة أخرى واطبع النتيجة - اطبع property
isScientificالخاصة بـmyCalculator
جرّب بنفسك
// TODO: اكتب الكود الخاص بك هنا
// أنشئ واجهة Calculator بالخصائص والطرق المطلوبة
// أنشئ واجهة BankAccount بالخصائص والطرق المطلوبة
// أنشئ المتغير myCalculator من نوع Calculator
// أنشئ المتغير savingsAccount من نوع BankAccount
// اطبع جميع المخرجات المطلوبةيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Introduction To 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) إلى الواجهاتملخص: تحديد هياكل الكائناتتدرّب بنفسك: مترجم JavaScript عبر الإنترنت