Menu
CoddyTech

Función para agregar una tarea

Parte de la sección Introducción a TypeScript del Journey de JavaScript de Coddy. Lección 46 de 73.

challenge icon

Desafío

Fácil

Se te proporciona lo siguiente del desafío anterior:

  • La interfaz Task con id (número), title (cadena) y status (tipo literal)
  • Tres variables de tareas: firstTask, secondTask y thirdTask
  • La función getTaskInfo

Crea una función llamada addTask que acepte dos parámetros:

  • taskList de tipo Task[] (un arreglo de objetos Task)
  • title de tipo string (el título de la nueva tarea)

La función debe:

  • Crear una nueva tarea con un ID único (usa la longitud del arreglo actual + 1)
  • Establecer el título con el parámetro title proporcionado
  • Establecer el estado en 'todo'
  • Devolver un nuevo arreglo que contenga todas las tareas existentes más la nueva tarea

Crea una lista de tareas inicial creando una variable llamada initialTasks de tipo Task[] que contenga firstTask y secondTask.

Usa tu función addTask para agregar una nueva tarea con el título "Review code changes" a initialTasks y almacena el resultado en una variable llamada updatedTasks.

Imprime los siguientes resultados en líneas separadas:

  • Imprime la longitud de initialTasks
  • Imprime la longitud de updatedTasks
  • Llama a getTaskInfo con la última tarea de updatedTasks e imprime el resultado
  • Imprime el título de la tarea recién agregada (la última tarea de updatedTasks)
  • Imprime el estado de la tarea recién agregada

Pruébalo tú mismo

// 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);

Todas las lecciones de Introducción a TypeScript

Practica por tu cuenta: Playground de TypeScript