이번 실습의 목적은 any로 지정된 타입 중 역할에 맞게 좀 더 구체적으로 정의할 수 있는 타입을 찾아 바꾸는 것입니다. any로 지정된 타입들을 하나씩 살펴보겠습니다. 먼저 addTodo() 함수 코드입니다.
function addTodo(todo: any): void {
todoItems.push(todo);
}
addTodo() 함수는 할 일 목록 배열에 데이터를 추가합니다. 할 일 목록 변수에 배열의 값 추가 api인 push API를 호출하고 있습니다. 여기에서 함수의 파라미터인 todo가 any로 지정되어 있는데요. todo는 다른 할 일 데이터와 동일한 데이터 구조로 저장되어야 합니다. 다른 유형의 데이터로 저장되면 이후 할 일 완료나 완료된 할 일 목록 표시 등 다른 기능을 동작시킬 때 의도치 않은 에러가 발생할 수 있기 때문입니다. 따라서 다음과 같이 todo의 파라미터 타입을 id, title, done 속성을 갖는 객체 타입으로 정의해 볼 수 있습니다.
function addTodo(todo: { id: number; title: string; done: boolean }): void {
todoItems.push(todo);
}