이 미션은 React와 TypeScript를 활용하여 간단한 Todo 애플리케이션을 구현하며, 컴포넌트와 상태에 타입을 정의하고 적용하는 실습입니다.
App.tsx
의todos
상태의 초기값 구조를 참고하여Todo
타입을 정의하세요.
- 할 일 보기 필터 상태를
enum
으로 정의하세요. - 아래 값을 포함해야 합니다:
SHOW_ALL = "모든 할 일 보기"
HIDE_COMPLETED = "완료된 할 일 숨기기"
todos
상태에useState<타입>
형식으로 타입을 명시하세요.
filter
상태에useState<타입>
을 사용하고 초기값은Filter.SHOW_ALL
로 설정하세요.
toggleFilter
함수에서switch
문을 사용하여filter
상태를 전환하세요.SHOW_ALL
일 경우 →HIDE_COMPLETED
HIDE_COMPLETED
일 경우 →SHOW_ALL
addTodo
함수의 매개변수text
에 문자열 타입(string
)을 지정하세요.
toggleComplete
함수의 매개변수id
에 숫자 타입(number
)을 지정하세요.
addTodo
에 대한 props 타입AddTodoProps
를 정의하세요.text: string
을 인자로 받아 반환값이 없는 함수
- 해당 타입을 컴포넌트에 적용하세요.
todo
와toggleComplete
에 대한 props 타입TodoItemProps
를 정의하세요.todo
: Todo 타입toggleComplete
:id: number
를 인자로 받아 반환값 없음
- 해당 타입을 컴포넌트에 적용하세요.
todos
,toggleComplete
,showCompleted
에 대한 props 타입TodoListProps
를 정의하세요.todos
: Todo[] 타입toggleComplete
:id: number
를 인자로 받아 반환값 없음showCompleted
: boolean 타입
- 해당 타입을 컴포넌트에 적용하세요.
- React 컴포넌트에 적절한 TypeScript 타입 정의하기
- 상태 및 props에 타입 안정성 부여하기
- enum과 switch문을 활용한 조건 처리 연습
- 타입스크립트를 통해 버그를 줄이고 예측 가능한 코드 작성