Menu
CoddyTech

タスクを追加する関数

CoddyのJavaScriptジャーニー「Introduction To TypeScript」セクションの一部。レッスン 46/73。

challenge icon

チャレンジ

簡単

前回のチャレンジから、以下のものが提供されています:

  • id (number)、title (string)、および status (リテラル型) を持つ Task インターフェース
  • 3つのタスク変数:firstTask、secondTask、および thirdTask
  • getTaskInfo 関数

2つのパラメータを受け取る addTask という名前の関数を作成してください:

  • Task[] 型(Taskオブジェクトの配列)の taskList
  • string 型(新しいタスクのタイトル)の 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のすべてのレッスン

自分で練習してみよう: TypeScriptプレイグラウンド