タスクを追加する関数
CoddyのJavaScriptジャーニー「Introduction To TypeScript」セクションの一部。レッスン 46/73。
チャレンジ
簡単前回のチャレンジから、以下のものが提供されています:
id(number)、title(string)、およびstatus(リテラル型) を持つTaskインターフェース- 3つのタスク変数:
firstTask、secondTask、およびthirdTask getTaskInfo関数
2つのパラメータを受け取る addTask という名前の関数を作成してください:
Task[]型(Taskオブジェクトの配列)のtaskListstring型(新しいタスクのタイトル)のtitle
この関数は以下のことを行う必要があります:
- 一意のIDを持つ新しいタスクを作成する(現在の配列の長さ + 1 を使用)
- タイトルを提供された title パラメータに設定する
- ステータスを
'todo'に設定する - すべての既存のタスクに新しいタスクを加えた新しい配列を返す
firstTask と secondTask を含む Task[] 型の initialTasks という名前の変数を作成して、初期タスクリストを作成してください。
addTask 関数を使用して、タイトルが "Review code changes" の新しいタスクを initialTasks に追加し、その結果を updatedTasks という名前の変数に保存してください。
以下の出力を別々の行に表示してください:
initialTasksの長さを表示するupdatedTasksの長さを表示するupdatedTasksの最後のタスクを引数にしてgetTaskInfoを呼び出し、その結果を表示する- 新しく追加されたタスク(
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);Introduction To TypeScriptのすべてのレッスン
7プロジェクト:シンプルなタスクリスト
プロジェクト:Task構造体の定義タスクを追加する関数2基本の型
基本の型: str, num, boolean'any' 型: 脱出ハッチ'unknown' 型'null' と 'undef' の扱い型推論の実践明示的な型アノテーションまとめ:基本の型の演習5型:エイリアス、ユニオン型、インターセクション型
プリミティブ型の型エイリアスユニオン型 ('|')ユニオン型の扱い方リテラル型インターセクション型 ('&')型エイリアスの組み合わせまとめ:高度な型の組み合わせ自分で練習してみよう: TypeScriptプレイグラウンド