typescript 타입 관련 질문
283
작성한 질문수 3
안녕하세요 선생님.
강좌를 모두 듣고 ,
혼자서 복습할 겸 파일 하나하나 다시 한 번 보고 있습니다.
타입스크립트를 좀 더 공부해볼려고
강의시간에 미처 다 다루지 못하고 넘어간 타입들을 하나하나 지정해주고 있는데요,
마우스 Click 이벤트와 관련된 event의 타입을 정할 때 React.MouseEvent<...>로 지정해주고 나서,
예를 들어 id에 접근을 하려고 한다면
e.target.id 로 접근하면 제대로 타입스크립트 오류가 뜨고, 반면 e.currentTaget.id로 접근하면 정상적으로 접근할 수 있었습니다.
해당 문제를 구글링을 해보니, Event Delegation과 관련해서 e.target은 마우스에 무엇이 클릭되느냐에 따라 그때그때 담기는 대상이 다르기에 이를 EventTarget으로 처리하지 않아 e.target에서 그 밑에 있는 property를 제대로 탐색할 수 없다고 이해했습니다. (구글링을 많이 해보았으나 관련 내용이 충분하지 못해 정확한 정보인지는 모르겠습니다)
위 과정에서 두 가지 의문점이 생겼는데요!
1) 그렇다면 타입스크립트는 Event Delegation과 관련된 기법을 지양한다고 봐도 될까요?
2) 강의에서는 원활한 강의 진행 + 굳이 안 해도 정상 작동하는 이유로 event와 같은 몇몇 매개변수의 타입을 지정하지 않고 넘어가셨는데, 이 경우 대부분 any 타입으로 지정되는 것으로 알고 있습니다. 타입스크립트에서 any로 사용하는 것은 최대한 지양한다고 알고 있는데, 실무에서도 위와 유사한 이유로 타입 지정을 건너뛰는 경우가 빈번한가요?
매번 감사드립니다 :)
답변 1
1
제가 이거 답변을 드린 것 같았는데 답변이 안 간 건가요?
1. 지양하는 게 아니라 방법이 없습니다. 어떤 태그에서 이벤트가 눌릴지 사전에 알 수 있는 방법이 없으니까요. 이럴 때 어쩔 수 없이 any를 쓸 수 밖에 없습니다.
2. 대부분 any로 지정되지 않긴 합니다. 다만 사용하는 라이브러리의 타이핑이 any로 되어있으면 타입추론도 any로 됩니다. 또한 고차함수에서는 any로 나오는 경우가 많습니다. 웬만하면 any가 안 나오는 게 좋습니다.
기본 셋팅과 관련하여
0
90
1
초기 셋팅 back과 front만 남겨두고 다 지운 후 진행 방법
0
95
2
focus 시에만 화면 업데이트 되는 이유 + 해결방법
0
148
2
useEffect 개수 관리
0
108
2
라이브러리 서치 방법
0
103
2
함수 정의 패턴
0
77
1
npm run dev 에러
0
151
3
npx webpack 후 에러
0
178
2
'void' 형식 식의 truthiness를 테스트할 수 없습니다.ts(1345)
0
142
2
사용자 가입시 에러발생 (TypeError: Cannot read properties of null (reading 'addMembers')
1
177
2
초기세팅중 packge.json 에러떠요
0
154
2
CORS - Access-Control-Allow-Origin 누락 문제
0
426
3
로그인 페이지 무한 새로고침 현상
0
598
2
Module not found: Error: Can't resolve './App' 에러
0
949
1
배포 방법
0
295
2
npm run dev 시 빌드가 매우 느려졌습니다
0
985
2
alias 경로 설정 오류
0
446
2
fetcher 함수의 data 값이 두번 찍히는 이유
0
273
1
제네릭 질문
0
216
2
ts-node 대신 tsx 사용여부
0
373
1
배포 관련 질문
0
244
1
[nginx + https] 서비스를 실행하면 niginx가 아닌 서비스 화면을 보여주게 하고 싶습니다.
0
382
2
[배포하기] webpack에 aws 퍼블릭 IPv4 주소 와 포트 주소를 작성하고 나서 빌드후 실행하면 오류가 발생합니다.
0
332
1
users 호출 시 쿠키가 담기지 않는 이슈 질문드립니다.
0
244
2





