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

دالة لإضافة مهمة

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

challenge icon

التحدي

سهل

لقد تم تزويدك بما يلي من التحدي السابق:

  • واجهة Task مع id (number)، و title (string)، و status (literal type)
  • ثلاثة متغيرات للمهام: firstTask، و secondTask، و thirdTask
  • دالة getTaskInfo

قم بإنشاء دالة باسم addTask تأخذ معاملين:

  • taskList من نوع Task[] (مصفوفة من كائنات Task)
  • title من نوع string (عنوان المهمة الجديدة)

يجب أن تقوم الدالة بما يلي:

  • إنشاء مهمة جديدة بمعرف فريد (استخدم طول المصفوفة الحالية + 1)
  • تعيين العنوان إلى معامل العنوان المقدم
  • تعيين الحالة إلى 'todo'
  • إرجاع مصفوفة جديدة تحتوي على جميع المهام الموجودة بالإضافة إلى المهمة الجديدة

قم بإنشاء قائمة مهام أولية عن طريق إنشاء متغير باسم initialTasks من نوع Task[] يحتوي على firstTask و secondTask.

استخدم دالة addTask لإضافة مهمة جديدة بالعنوان "Review code changes" إلى initialTasks وقم بتخزين النتيجة في متغير باسم updatedTasks.

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

  • اطبع طول initialTasks
  • اطبع طول updatedTasks
  • قم باستدعاء getTaskInfo مع المهمة الأخيرة في updatedTasks واطبع النتيجة
  • اطبع عنوان المهمة المضافة حديثاً (المهمة الأخيرة في updatedTasks)
  • اطبع حالة المهمة المضافة حديثاً

جرّب بنفسك

// TODO: Write your code here

// Create the Task interface
interface Task {
    id: number;
    title: string;
    status: 'todo' | 'in-progress' | 'done';
}

// Create the task variables
const firstTask: Task = {
    id: 1,
    title: "Learn TypeScript interfaces",
    status: 'todo'
};

const secondTask: Task = {
    id: 2,
    title: "Build task management app",
    status: 'in-progress'
};

const thirdTask: Task = {
    id: 3,
    title: "Write unit tests",
    status: 'done'
};

// Create the getTaskInfo function
function getTaskInfo(task: Task): string {
    return `Task ${task.id}: ${task.title} - ${task.status}`;
}

// Print the required outputs
console.log(getTaskInfo(firstTask));
console.log(getTaskInfo(secondTask));
console.log(getTaskInfo(thirdTask));
console.log(firstTask.status);
console.log(secondTask.title);

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

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