inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[실시간 채팅 with React]

typescript 타입 관련 질문

283

KGinS

작성한 질문수 3

0

안녕하세요 선생님.

강좌를 모두 듣고 ,

혼자서 복습할 겸 파일 하나하나 다시 한 번 보고 있습니다.

타입스크립트를 좀 더 공부해볼려고

강의시간에 미처 다 다루지 못하고 넘어간 타입들을 하나하나 지정해주고 있는데요,

마우스 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로 사용하는 것은 최대한 지양한다고 알고 있는데, 실무에서도 위와 유사한 이유로 타입 지정을 건너뛰는 경우가 빈번한가요?


매번 감사드립니다 :)

typescript 클론코딩 Socket.io babel 웹팩 react

답변 1

1

제로초(조현영)

제가 이거 답변을 드린 것 같았는데 답변이 안 간 건가요?

1. 지양하는 게 아니라 방법이 없습니다. 어떤 태그에서 이벤트가 눌릴지 사전에 알 수 있는 방법이 없으니까요. 이럴 때 어쩔 수 없이 any를 쓸 수 밖에 없습니다.

2. 대부분 any로 지정되지 않긴 합니다. 다만 사용하는 라이브러리의 타이핑이 any로 되어있으면 타입추론도 any로 됩니다. 또한 고차함수에서는 any로 나오는 경우가 많습니다. 웬만하면 any가 안 나오는 게 좋습니다.

0

KGinS

답변 알림이 작성해주신 시간에 하나만 있고 그 전엔 없네요. 뭔가 오류가 있었던 듯 합니다~

그래도 이렇게 한번 더 확인해주시고 답변 주셔서 감사합니다~

기본 셋팅과 관련하여

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

243

1

[nginx + https] 서비스를 실행하면 niginx가 아닌 서비스 화면을 보여주게 하고 싶습니다.

0

382

2

[배포하기] webpack에 aws 퍼블릭 IPv4 주소 와 포트 주소를 작성하고 나서 빌드후 실행하면 오류가 발생합니다.

0

332

1

users 호출 시 쿠키가 담기지 않는 이슈 질문드립니다.

0

244

2