const todoInputRef = useRef();
useRef()를 처음에 사용할 때, DOM 조작을 위한 놈이라는 걸 인식 시키기 위해 `const todoInputRef = useRef(null);` 이렇게 HTMLInputElement를 제네릭에 넣고, initialValue를 null로 초기화 시켜주었다.
또한 todoInputRef.current.focus()
실행 하고 싶지만 자꾸 null 인것 같다고 추론을 해서 !를 통해 “타입 단언”을 해줌으로써 해당 current가 null값이 아님을 직접 단언 시켜주었다.
- 블로그 포스팅을 살펴보니 이걸 Duck Typing이라고 말하는 것 같다.
const appendTodo = (e: React.FormEvent<HTMLInputElement>) => {
e.preventDefault();
todoInputRef.current!.focus(); // !을 통한 타입 단언
if (todoInput === '') return;
const [todoList, setTodoList] = useState([]);
<TodoItem>
이런식으로 선언해줘야 하나 봅니다.const [todoList, setTodoList] = useState<TodoItem[]>([]);
오 대박 ㅋㅋ 에러가 없어요!!!!!!!!!!!!!! 👍🧑💻😆🫡
드디어 타입스크립트 찍먹을 성공했습니다!!!
Any를 박은 곳은 딱 한 부분이구요! (try-catch에서 (error: any)
)
아직 작은 to-do-app을 TypeScript로 Migration 해본 정도 밖에 안되지만, 그래도 스스로 타스프로젝트를 만들어 내었다는게 너무 뿌듯하고 좋네요 ㅎㅎ
이제 시작부터 타스로 만드는 경험도 해봐야할것 같아요 ㅋㅋ 그리고 앞으로의 프로젝트는 특별한 이유가 없는 한 TypeScript로 진행할 것 같습니다.ㅎㅎ 너무너무너무 재밌네요!!! 😆