Funktion: Aufgabenübersicht ausgeben
Teil des Abschnitts Einführung in TypeScript der JavaScript-Journey von Coddy. Lektion 49 von 73.
Aufgabe
EinfachDir steht Folgendes aus der vorherigen Herausforderung zur Verfügung:
- Das
Task-Interface mitid(number),title(string) undstatus(Literaltyp) - Drei Task-Variablen:
firstTask,secondTaskundthirdTask - Die Funktion
getTaskInfo - Die Funktion
addTask - Die Funktion
changeTaskStatus - Die Funktion
listTasksByStatus - Die Arrays
initialTasks,updatedTasks,testTasks,progressTasks,completedTasks,mixedTasks,todoTasks,inProgressTasksunddoneTasks
Erstelle eine Funktion namens printTaskSummary, die einen Parameter entgegennimmt:
taskvom TypTask(ein einzelnes Task-Objekt)
Die Funktion sollte:
- Eine formatierte Zusammenfassung in genau folgendem Format auf der Konsole ausgeben:
"ID: [id], Title: [title], Status: [status]" - Den Rückgabetyp
voidhaben
Erstelle eine Funktion namens printAllTaskSummaries, die einen Parameter entgegennimmt:
taskListvom TypTask[](ein Array von Task-Objekten)
Die Funktion sollte:
- Eine Schleife verwenden, um
printTaskSummaryfür jede Aufgabe im Array aufzurufen - Den Rückgabetyp
voidhaben
Erstelle eine Variable namens sampleTasks vom Typ Task[], die die folgenden Aufgaben enthält:
- Eine Aufgabe mit der ID
101, dem Titel"Design user interface"und dem Status'todo' - Eine Aufgabe mit der ID
102, dem Titel"Implement authentication"und dem Status'in-progress' - Eine Aufgabe mit der ID
103, dem Titel"Deploy to production"und dem Status'done'
Gib die folgenden Ausgaben aus:
- Rufe
printTaskSummarymitfirstTaskauf - Rufe
printTaskSummarymit der zweiten Aufgabe aussampleTasksauf - Rufe
printAllTaskSummariesmitsampleTasksauf - Rufe
printTaskSummarymit der letzten Aufgabe ausdoneTasksauf
Probier es selbst
// Task interface and previous code from earlier challenges
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];
}
function changeTaskStatus(taskList: Task[], taskId: number, newStatus: 'todo' | 'in-progress' | 'done'): Task[] {
return taskList.map(task =>
task.id === taskId ? { ...task, status: newStatus } : task
);
}
const initialTasks: Task[] = [firstTask, secondTask];
const updatedTasks: Task[] = addTask(initialTasks, "Review code changes");
const testTasks: Task[] = [firstTask, secondTask, thirdTask];
const progressTasks = changeTaskStatus(testTasks, 1, 'in-progress');
const completedTasks = changeTaskStatus(progressTasks, 2, 'done');
// Create the listTasksByStatus function
function listTasksByStatus(taskList: Task[], status: 'todo' | 'in-progress' | 'done'): Task[] {
return taskList.filter(task => task.status === status);
}
// Create mixedTasks array
const mixedTasks: Task[] = [firstTask, secondTask, thirdTask];
// Filter tasks by status
const todoTasks = listTasksByStatus(mixedTasks, 'todo');
const inProgressTasks = listTasksByStatus(mixedTasks, 'in-progress');
const doneTasks = listTasksByStatus(mixedTasks, 'done');
// Print the required outputs
console.log(mixedTasks.length);
console.log(todoTasks.length);
console.log(inProgressTasks.length);
console.log(doneTasks.length);
console.log(getTaskInfo(todoTasks[0]));
console.log(getTaskInfo(inProgressTasks[0]));
console.log(getTaskInfo(doneTasks[0]));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: Online-JavaScript-Compiler