Funktion zum Ändern des Aufgabenstatus
Teil des Abschnitts Einführung in TypeScript der JavaScript-Journey von Coddy. Lektion 47 von 73.
Aufgabe
EinfachDir liegt Folgendes aus der vorherigen Herausforderung vor:
- das
Task-Interface mitid(number),title(string) undstatus(Literaltyp) - drei Aufgabenvariablen:
firstTask,secondTaskundthirdTask - die Funktion
getTaskInfo - die Funktion
addTask - die Arrays
initialTasksundupdatedTasks
Erstelle eine Funktion namens changeTaskStatus, die drei Parameter entgegennimmt:
taskListvom TypTask[](ein Array von Task-Objekten)taskIdvom Typnumber(die ID der zu aktualisierenden Aufgabe)newStatusvom Typ'todo' | 'in-progress' | 'done'(der neue Status der Aufgabe)
Die Funktion soll:
- die Aufgabe mit der übereinstimmenden ID in der Aufgabenliste finden
- den Status dieser Aufgabe auf den neuen Status aktualisieren
- ein neues Array mit der aktualisierten Aufgabe zurückgeben (das ursprüngliche Array nicht verändern)
- wenn keine Aufgabe mit der angegebenen ID gefunden wird, das ursprüngliche Array unverändert zurückgeben
Erstelle eine Variable namens testTasks vom Typ Task[], die firstTask, secondTask und thirdTask enthält.
Verwende deine Funktion changeTaskStatus, um:
- den Status der Aufgabe mit der ID
1in'in-progress'zu ändern und das Ergebnis inprogressTaskszu speichern - den Status der Aufgabe mit der ID
2inprogressTasksin'done'zu ändern und das Ergebnis incompletedTaskszu speichern
Gib die folgenden Ausgaben in separaten Zeilen aus:
getTaskInfomit der ersten Aufgabe austestTasksaufrufen und das Ergebnis ausgebengetTaskInfomit der ersten Aufgabe ausprogressTasksaufrufen und das Ergebnis ausgebengetTaskInfomit der zweiten Aufgabe auscompletedTasksaufrufen und das Ergebnis ausgeben- den Status der ersten Aufgabe in
testTasksausgeben - den Status der zweiten Aufgabe in
completedTasksausgeben
Probier es selbst
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);Alle Lektionen in Einführung in TypeScript
1Erste Schritte mit TS
Was ist TypeScript?Warum TypeScript verwenden?Dein erster TypeScript-CodeKompilierungsprozess & FehlerZusammenfassung: Einführung in TS4Arbeiten mit Funktionen
Typisierung von Parametern & RückgabewertenTypisierung von Arrow-FunktionenDer Rückgabetyp 'void'Optionale Parameter mit '?'Standard-ParameterwerteTypisierung von Rest-ParameternDefinieren von FunktionstypenZusammenfassung: Typisierte Funktionen erstellen7Projekt: Eine einfache Aufgabenliste
Projekt: Task-Struct definierenFunktion zum Hinzufügen einer Aufgabe2Basis-Typen
Basis-Typen: str, num, booleanDer 'any'-Typ: Der NotausgangDer 'unknown'-TypArbeiten mit 'null' & 'undef'Typinferenz in der PraxisExplizite Typ-AnnotationenZusammenfassung: Übung zu Basis-Typen5Typen: Aliase, Unions & Intersections
Typ-Aliase für primitive DatentypenUnion-Typen ('|')Arbeiten mit Union-TypenLiteral-TypenIntersection-Typen ('&')Kombinieren von Typ-AliasenZusammenfassung: Fortgeschrittene Typ-Kombinationen3Datenstruktur: Arrays & Tupel
Typisierte Arrays'readonly'-Modifikator für ArraysWas ist ein Tupel?Deklarieren von und Zugriff auf TupelDestrukturierung von TupelnReadonly-TupelMehrdimensionale typisierte ArraysSpread-Operator mit ArraysZusammenfassung: Arrays und TupelÜbe selbstständig: TypeScript-Playground