React.ChangeEvent<T>
와 같은 형태의 event 타입을 지정해주어야한다.<T>
은 generic인데 공식 문서를 보면 조금 이해가 된다.const handleChangeInputs = (e: ChangeEvent<HTMLInputElement>) => {
const { name, value } = e.target;
setAuthInputs({ ...authInputs, [name]: value });
};
const handleSubmitAuth = (e: SubmitEvent) => {
e.preventDefault();
const { email, password } = authInputs;
const authUrl = authType === 'login' ? `${baseUrl}/auth/signin` : `${baseUrl}/auth/signup`;
const options = {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, password }),
};
React.SyntheticEvent
로 지정하라해서 따라해보니 해결이 되었다.const handleSubmitAuth = (e: React.SyntheticEvent) => {
e.preventDefault();
const { email, password } = authInputs;
const authUrl = authType === 'login' ? `${baseUrl}/auth/signin` : `${baseUrl}/auth/signup`;
const options = {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email, password }),
};
function TodoInput({
todoInput,
setTodoInput,
appendTodo,
todoInputRef,
}: {
todoInput: string;
setTodoInput: Function;
appendTodo: Function;
todoInputRef: HTMLInputElement;
})
function TodoInput({
todoInput,
setTodoInput,
appendTodo,
todoInputRef,
}: {
todoInput: string;
setTodoInput: Function;
appendTodo: FormEventHandler;
todoInputRef: LegacyRef<HTMLInputElement>;
})
const fetchData = async () => {
if (token) {
await API.deleteTodo(token, {
id: todoItem.id,
});
const newTodoList = todoList.filter(x => x.id !== todoItem.id);
setTodoList([...newTodoList]);
}
};
마이그레이션 하다보니 "기본 타입지정"은 당연하고, 이런 저런 개념이 다 나오면서 겉핥기 식으로라도 찍먹하게 되니 정말 큰 도움이 되는 것 같아요!
인강 보고 있는것보다 훨씬 도움되는것 같네요... 후..
인강이 지루해진게 개발자로써 성장하는데 조금 더 도움이 되는 걸지도?!