Menu
Coddy logo textTech

Görev Durumunu Değiştirme Fonksiyonu

Coddy'nin JavaScript Journey'sinin TypeScript'e Giriş bölümünün bir parçası. Ders 47 / 73.

challenge icon

Görev

Kolay

Önceki görevden size aşağıdakiler sağlanmıştır:

  • id (number), title (string) ve status (literal type) özelliklerine sahip Task arayüzü
  • Üç görev değişkeni: firstTask, secondTask ve thirdTask
  • getTaskInfo fonksiyonu
  • addTask fonksiyonu
  • initialTasks ve updatedTasks dizileri

Üç parametre alan changeTaskStatus adında bir fonksiyon oluşturun:

  • Task[] tipinde taskList (Task nesnelerinden oluşan bir dizi)
  • number tipinde taskId (güncellenecek görevin ID'si)
  • 'todo' | 'in-progress' | 'done' tipinde newStatus (görevin yeni durumu)

Fonksiyon şunları yapmalıdır:

  • Görev listesinde eşleşen ID'ye sahip görevi bulmalı
  • O görevin durumunu yeni durumla güncellemeli
  • Güncellenmiş görevi içeren yeni bir dizi döndürmeli (orijinal diziyi değiştirmeyin)
  • Verilen ID'ye sahip bir görev bulunamazsa, orijinal diziyi değiştirmeden döndürmeli

firstTask, secondTask ve thirdTask değişkenlerini içeren Task[] tipinde testTasks adında bir değişken oluşturun.

changeTaskStatus fonksiyonunuzu şunları yapmak için kullanın:

  • ID'si 1 olan görevin durumunu 'in-progress' olarak değiştirin ve sonucu progressTasks değişkeninde saklayın
  • progressTasks içindeki ID'si 2 olan görevin durumunu 'done' olarak değiştirin ve sonucu completedTasks değişkeninde saklayın

Aşağıdaki çıktıları ayrı satırlara yazdırın:

  • testTasks dizisindeki ilk görevle getTaskInfo fonksiyonunu çağırın ve sonucu yazdırın
  • progressTasks dizisindeki ilk görevle getTaskInfo fonksiyonunu çağırın ve sonucu yazdırın
  • completedTasks dizisindeki ikinci görevle getTaskInfo fonksiyonunu çağırın ve sonucu yazdırın
  • testTasks dizisindeki ilk görevin durumunu yazdırın
  • completedTasks dizisindeki ikinci görevin durumunu yazdırın

Kendin dene

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

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'
};

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

function addTask(taskList: Task[], title: string): Task[] {
  const newTask: Task = {
    id: taskList.length + 1,
    title: title,
    status: 'todo'
  };
  return [...taskList, newTask];
}

const initialTasks: Task[] = [firstTask, secondTask];

const updatedTasks: Task[] = addTask(initialTasks, "Review code changes");

console.log(initialTasks.length);
console.log(updatedTasks.length);
console.log(getTaskInfo(updatedTasks[updatedTasks.length - 1]));
console.log(updatedTasks[updatedTasks.length - 1].title);
console.log(updatedTasks[updatedTasks.length - 1].status);

TypeScript'e Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online JavaScript derleyicisi