1차 구현코드
선언

- ReviewFormData는 react-hook-form에서 관리할 data 타입이다.
이용


- 타입이 확실히 지정되어있기에,
registerName
(ReviewFormData의 key 값)에서도 타입추론이 가능했다.
문제점
- props가 RegisterInputProps<ReviewFormData> 타입으로 강하게 엮여있어, 다른 input에서 재사용할 수 없었다.
- 이 타입을 동적으로 받는 방향으로 수정하려했고, 제네릭을 활용하기로 결정했다.
2차 구현코드
선언

- 이용할 타입을 제네릭으로 받아, Register에서 관리할 타입을 결정한다.
이용

문제

- 이용하는 곳에선 타입이 결정되지 않았기에, registerName을 추론할 수 없다.
- 어떻게 추론할 수 있을까?
- 추론안해도 돌아가긴 하지만, 오타를 내는 순간 바로 문제가 생긴다.
- 그래서, 추론하도록 해 컴파일시에도 에러를 체크하도록 만들고 싶다.
- 참고로 register은 useForm을 정의할 때, 타입이 정하기때문에 이용하는 곳에서 타입추론이 가능하다

- 선언부에서 타입 추론이 다르다..
- register은 이용하는 곳의 T를 이용한다고 정의되어있지만
- registerName은 아니다.. 왜 차이가 나지?


해결했다!!!!

- 추론 안됐던 이유는..registerName타입인 Path<T>의 Path 타입 정의를 참조해오지 않아서 발생했던 문제였다.
- 자동 import가 안되서 react-hooks-form 내부에 Path타입을 찾기위해 노드모듈을 직접 까봤고, Path타입이 내부정의 되어있는 걸 발견해서, 수동 import해주니까 됐다!!
