리액트 객체의 타입을 알기위하여 마우스를 올렸을 때 나오는 형식이 강의와 다른 부분 문의 드립니다.
65
작성자 없음
0 asked
안녕하세요. 지금 125강 제어 컴포넌트 부분
문의 드립니다.
input type에서 onChange 함수에
handleInputchange를 호출을 하고 있는 부분을 따라하고 있었습니다.
리액트 객체의 타입을 알아야 하기 때문에 마우스를 e에다가 가져보면 저는
(parameter) e: ChangeEvent<HTMLInputElement>
이렇게 나오고 있습니다.
그런데 강의에서는 (parameter) e: React.ChangeEvent<HTMLInputElement> 이렇게 나오고 있어서요.
저의 VS CODE에서는 React. 이 부분이 누락이 되어서 알려주고 있습니다.


const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => { setInput(e.target.value); };
이렇게 넣었을 시에 ChangeEvent 에 빨간불은 들어오지만 화면 자체에 에러는 안나오는 것 같습니다.
강사님 강의처럼 React. 이 부분을 넣지 않아도 괜찮을지에 관하여서 문의 드려봅니다.
강의 너무 잘 보고 있습니다
감사합니다.
Answer 2
0
안녕하세요!
해당 질문에 대해 인프런 AI 인턴이 이미 충분히 자세한 답변을 제공해 주어서,
제가 추가로 덧붙일 내용은 거의 없는 것 같습니다. 😊
그래도 제 의견을 정리하자면 다음과 같습니다.
ChangeEvent를 단독으로 사용하려면 아래처럼 별도로 import 해주어야 합니다.
import { ChangeEvent } from "react";
const handleChange = (e: ChangeEvent<HTMLInputElement>) => {};이러한 import가 번거롭다면, import 없이 React.ChangeEvent 형태로 사용할 수도 있습니다.
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {};어느 쪽이 정답이라고 할 수는 없지만, 개인적으로는 후자의 방식을 더 선호합니다.
참고 부탁드립니다!
0
안녕하세요, 인프런 AI 인턴입니다. 면류관받는날까지#님.
React에서 ChangeEvent 타입을 명시할 때, React.ChangeEvent 대신 ChangeEvent만 사용해도 빨간불이 표시되지 않는 이유가 궁금하시군요.
이유
환경 설정: 프로젝트에서
ChangeEvent를 직접 import한 경우,React.를 명시하지 않아도 사용할 수 있습니다. TypeScript가 해당 타입을 프로젝트의 타입 선언(context) 파일에서 찾을 수 있으면 문제없이 작동하게 됩니다.타입스크립트 환경:
tsconfig.json에서compilerOptions에 따라 인텔리센스 및 타입 확인 기능이 다르게 작동할 수 있습니다.레이리어 없이 사용 가능: 타입을 누락한 경우, 에러가 발생한다면 이는 컴파일러가
ChangeEvent타입의 선언을 찾지 못했기 때문입니다.React.를 명시함으로써 타입을 명확하게 정의할 수 있습니다.
그래도 React. 을 사용하는 이유
- 일관성: 프로젝트 전체에서 작성 스타일의 일관성을 유지할 수 있으므로 협업 시 가독성이 높아집니다.
- 명확성: React 라이브러리에서 제공하는 타입임을 명확히 할 수 있어 코드의 유지보수성을 높일 수 있습니다.
해결 방법
- 명시적으로 React. 사용: 타입이 어디서 오는지를 명확히 알 수 있어 유지보수가 수월합니다.
import React, { ChangeEvent } from 'react';
const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
setInput(e.target.value);
};
- 리팩토링 및 옵션 확인:
tsconfig.json에 설정된compilerOptions와 타입 선언을 확인하여 타입 추론에 문제가 없는지 점검해 보세요.
질문하신 내용을 더 깊이 이해할 수 있는 참고 링크를 제공해드립니다:
- “TypeScript에서 React Event 및 ChangeEvent 제대로 사용하기”
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
cloudinary 관련
0
39
3
useOptimistic 실전-1 useState
0
60
2
discord 초대장 갱신이 필요한거같습니다.
0
61
1
할일 관리 앱(메모이제이션)
0
79
2
Web 플랫폼 등록
0
107
2
함수 정의 기준
0
76
2
fetch는 사용되는가
0
75
2
전역상태 관리 선택 기준
0
85
2
tailwind css는 언제 사용되는가 또 다른 css와의 차이
0
153
2
카카오 web플랫폼 등록
0
144
2
컴포넌트 그리고 폴더 구조에 대해
0
59
2
152강 보는중입니다. 초시계부분이구요. 넘버가 timeout을 받을수없다는 에러가 나오고 있어요
0
42
1
폼테그 다른 태그를 하나의 상태 객체로 묶기
0
43
2
class를 className으로 전부 수정하실 때
0
42
2
JWT에 대한 개념도 학습할 수 있나요?
0
64
2
수업자료 다운로드
0
51
2
useState 자동생성 하실때 누른 키보드가 궁금합니다.
0
51
1
타입스크립트 타입이 불일치하는데 에러가 안납니다.
0
75
3
default format >> prettier 이 실행이 안됩니다.
0
65
2
윈도우 사용자입니다. homebrew 윈도우 설치법은 없나요?
0
343
3
리렌더링 관련 문의
0
56
2
공부 방향에 대해서
0
62
2
form action 과 onSubmit
0
59
2
카카오로그인 에러
0
74
3

