:타입
요렇게 잘 지정만 해주면 되겠지 뭐~const handleChange = (e) => {
const { name, value } = e.target;
name === "제목" && setInput((prev) => ({ ...prev, title: value }));
name === "내용" && setInput((prev) => ({ ...prev, text: value }));
};
const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {
const { name, value } = e.target;
name === "제목" && setInput((prev) => ({ ...prev, title: value }));
name === "내용" && setInput((prev) => ({ ...prev, text: value }));
};
대체 event 타입으로 지정해야 하는
React.ChangeEvent<HTMLInputElement>
는 어디서 나온건데..
하고 찾아보니 이벤트타입<이벤트가 발생하는 요소>
으로 이해하면 된다고 한다..
이벤트는 MouseEvent, changeEvent, FormEvent등이 있어서
찾으려면 유추해서 찾을 수는 있겠지만
익숙하지 않아 안 쓰면 금방 잊어버릴 거 같다,
뭐 하나 가만 놔두지를 않는 TS
' 다 너 잘 되라고 하는 거야~ ' 라는 말이 떠오른다.
나중을 생각하면 고마울 수도 있겠지만 현재는 상당히 괴롭다.
1번에 설명한 함수는 userInput이라는 state에 업데이트 되기 때문에
useState를 사용해야 했다.
코드는 아래와 같다
// state에 사용 될 type 선언
interface UserInput {
id: string,
title: string,
text: string,
isActive: boolean,
}
// useState에 제네릭으로 UserInput타입을 넘겨준다.
const [input, setInput] = useState<UserInput>({
id: nanoid(),
title: "",
text: "",
isActive: true,
});