개발자

타입스크립트 이벤트 타이핑 방식에 관하여

2023년 08월 19일조회 102

안녕하세요 타입스크립트 코드 작성 중 궁금한 부분이 생겨 이렇게 질문 글 올려봅니다. 만들어 놓은 custom hook 중 모달 or 레이어 창을 닫는 close라는 함수가 hook 안에 있습니다. 함수는 아래 코드와 같이 생겼습니다. 이 함수는 usehook의 의도에 맞게 코드 전역에서 사용 되는데 컴포넌트 내부에서 이 함수를 사용할 때 이벤트 객체의 타입이 사용하는 곳마다 다르기 때문에, close 함수의 파라미터인 이벤트 객체의 타입을 결정하는데 고민이 있었습니다. 어느 곳은 input 같은 태그에서 onClick 함수 내에서 사용하기에 React.MouseEvent, 어느 곳은 eventListener에서 사용하기 때문에 그냥 MouseEvent로 추론 되는 등 여러가지 이벤트 타입이 존재했습니다. 그래서 모든 이벤트에서 상속 받는 BaseSyntheticEvent를 close 함수를 정의하는 곳에서 이벤트 객체의 타입으로 지정을 해주었는데 이게 좋은 방법이 맞을까요? 혹은 이벤트 객체 타입이 아니더라도 비슷한 경우에는 어떻게 작성하는 것이 좋은 방법일까요?

1const close (e?:BaseSyntheticEvent) => {
2 if(e !== undefined) e.stopPropagation()
3 setClose(true)
4}
이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

허니님의 프로필 사진

close 함수 내에서 이벤트 전파를 멈출 특별한 이유가 있나요? 그게 아니라면 close함수에서 이벤트를 안받아도 될 것 같아요.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!