Menu
CoddyTech
flag Ar iconالعربيةdown icon

مشروع: تعريف الـ Struct للمهمة

جزء من قسم مقدمة إلى TypeScript في رحلة JavaScript على Coddy. الدرس 45 من 73.

مرحبًا بك في أول مشروع لك باستخدام TypeScript! خلال الدروس القليلة القادمة، ستبني تطبيقًا متكاملًا لقائمة المهام يوضّح كيف يساعد TypeScript في إنشاء تعليمات برمجية منظّمة جيدًا وآمنة من حيث الأنواع. سيجمع هذا المشروع العديد من المفاهيم التي تعلمتها حتى الآن: interfaces، والأنواع الحرفية، والمصفوفات، والدوال.

أساس أي نظام لإدارة المهام هو تحديد شكل المهمة. في هذا الدرس، ستنشئ بنية البيانات التي تمثل مهمة واحدة في تطبيقك. يجب أن تلتقط هذه البنية المعلومات الأساسية: معرّفًا فريدًا، وما تدور حوله المهمة، وحالتها الحالية.

ستستخدم واجهة Task الخاصة بك الأنواع الحرفية لخاصية status، ما يعني أن status يمكن أن تكون إحدى قيم السلاسل النصية المحددة القليلة فقط، مثل 'todo' أو 'in-progress' أو 'done'. يمنع هذا الأسلوب الأخطاء المطبعية ويضمن الاتساق في جميع أنحاء تطبيقك - إذ سيتعرّف TypeScript على أي محاولة لاستخدام قيمة status غير صالحة.

سيعمل هيكل المشروع هذا كمخطط أساسي لجميع الوظائف التي ستبنيها في الدروس القادمة، بما في ذلك إضافة مهام جديدة، وتحديث حالتها، وتصفية المهام حسب حالتها الحالية.

challenge icon

التحدي

سهل

أنشئ interface باسم Task مع الخصائص التالية:

  • id من النوع number
  • title من النوع string
  • status يمكن أن تكون إحدى القيم الحرفية التالية فقط: 'todo' أو 'in-progress' أو 'done'

باستخدام interface ‏Task، أنشئ variables التالية:

  • أنشئ متغيرًا باسم firstTask من النوع Task، مع id يساوي 1، وtitle يساوي "Learn TypeScript interfaces"، وstatus يساوي 'todo'
  • أنشئ متغيرًا باسم secondTask من النوع Task، مع id يساوي 2، وtitle يساوي "Build task management app"، وstatus يساوي 'in-progress'
  • أنشئ متغيرًا باسم thirdTask من النوع Task، مع id يساوي 3، وtitle يساوي "Write unit tests"، وstatus يساوي 'done'

أنشئ دالة باسم getTaskInfo تقبل وسيطًا من النوع Task وتُرجع قيمة من النوع string بالتنسيق "Task [id]: [title] - [status]".

اطبع المخرجات التالية في أسطر منفصلة:

  • استدعِ getTaskInfo باستخدام firstTask واطبع النتيجة
  • استدعِ getTaskInfo باستخدام secondTask واطبع النتيجة
  • استدعِ getTaskInfo باستخدام thirdTask واطبع النتيجة
  • اطبع حالة firstTask
  • اطبع عنوان secondTask

جرّب بنفسك

// TODO: اكتب الكود الخاص بك هنا

// أنشئ واجهة Task


// أنشئ متغيرات task


// أنشئ الدالة getTaskInfo


// اطبع المخرجات المطلوبة
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس مقدمة إلى TypeScript

تدرّب بنفسك: Playground لـ TypeScript