첫 번째 실습 순서에서 함수의 반환 타입을 지정할 때만 해도 any라는 타입이 표시되었습니다. 하지만 현재 시점에서는 todoItems의 변수 타입이 { id: number; title: string; done: boolean }으로 지정되어 있기에 비주얼 스튜디오 코드 내부적으로 해당 변수의 타입을 함수의 반환 타입과 연결하여 그림과 같이 함수의 반환 타입이 추론되는 것을 볼 수 있습니다. 이런 식으로 타입을 지정한다면 어렵지 않게 타입스크립트 코드를 작성할 수 있습니다.
현재 프로젝트의 규칙상 함수의 반환 타입을 명시적으로 작성하지 않으면 ESLint 에러가 표시되므로 다시 타입을 명시해 줍니다.
function logFirstTodo(): { id: number; title: string; done: boolean } {
return todoItems[0];
}
마지막으로 showCompleted() 함수를 보겠습니다.
function showCompleted(): any {
return todoItems.filter(item => item.done);
}