안녕하세요. 질문 있습니다.
안녕하세요.
강의와 관련된 내용은 아니지 추가 공부중 이해하기 어려운 부분이 혼자 고민해봐도 확실한 답을 찾지 못해 질문 드립니다.
먼저 책 내용은 아래와 같았습니다.
위와 같은 이유로 라이브러리는 공통 함수 시그니처를 함수 타입으로 제공하기도 한다. 또한 공통 콜백 함수를 위한 타입 선언을 제공하는 것이 좋다. 예를 들어 리액트는 함수의 매개변수에 명시하는 MouseEvent 타입 대신 함수 전체에 적용할 수 있는 MouseEventHandler 타입을 제공한다.
만약 같은 타입 시그니처를 반복적으로 작성한 코드가 있다면 함수 타입을 분리해 내거나 이미 존재하는 타입을 찾아보자. 라이브러리를 직접 만든다면 공통 콜백에 타입을 제공해야한다.
그리고 관련된 타입은 아래와 같이 있었습니다.
type EventHandler<E extends SyntheticEvent<any>> = { bivarianceHack(event: E): void }["bivarianceHack"];
type MouseEventHandler<T = Element> = EventHandler<MouseEvent<T>>;
onAuxClick?: MouseEventHandler<T> | undefined;
onAuxClickCapture?: MouseEventHandler<T> | undefined;
onClick?: MouseEventHandler<T> | undefined;
onClickCapture?: MouseEventHandler<T> | undefined;
onContextMenu?: MouseEventHandler<T> | undefined;
onContextMenuCapture?: MouseEventHandler<T> | undefined;
onDoubleClick?: MouseEventHandler<T> | undefined;
onDoubleClickCapture?: MouseEventHandler<T> | undefined;
onMouseDown?: MouseEventHandler<T> | undefined;
onMouseDownCapture?: MouseEventHandler<T> | undefined;
onMouseEnter?: MouseEventHandler<T> | undefined;
onMouseLeave?: MouseEventHandler<T> | undefined;
onMouseMove?: MouseEventHandler<T> | undefined;
onMouseMoveCapture?: MouseEventHandler<T> | undefined;
onMouseOut?: MouseEventHandler<T> | undefined;
onMouseOutCapture?: MouseEventHandler<T> | undefined;
onMouseOver?: MouseEventHandler<T> | undefined;
onMouseOverCapture?: MouseEventHandler<T> | undefined;
onMouseUp?: MouseEventHandler<T> | undefined;
onMouseUpCapture?: MouseEventHandler<T> | undefined;제가 이해한건 onClick, onDoubleClick에 관련된 이벤트를 모두 만들지 않고 MouseEventHandler 하나로 타입을 지정 가능하도록 했다 라는 뜻으로 이해했는데 맞을까요?
그리고 공통 콜백 함수를 위한 타입 선언을 제공하는 것이 좋다 라는 문장은 저 MouseEventHandler 타입을 개발자에게 제공하여 편하게 사용하는 것이 좋다, onClick, onDoubleClick 같은 속성에 들어갈 함수를 위한 타입을 제공하는 것이 좋다 로 이해했는데 맞을까요??
마지막 문장은 해당 부분을 중괄호() 로 이해 했는데 맞을까요?? 같은 타입 시그니처를 반복적으로 작성한 코드가 있다면(MouseEventHandler 타입인 함수들) 함수 타입(MouseEventHandler)를 분리해내거나 이미 존재하는 타입(MouseEventHandler)를 찾아보자. 라이브러리를 직접 만든다면 공통 콜백에 타입을 제공(MouseEventHandler)해야한다.
제 질문 자체가 이상하면 솔직히 말해주시면 감사합니다ㅠㅠ 감사합니다!!
답변 1
타입 오버라이딩
0
79
2
React19에서 useRef 타입 정의의 변화
0
128
2
jQuery를 $로 한 번 더 감싼 형태
0
58
1
typescript interface를 jsdoc으로 주석달 때
0
234
2
declare module시 import 위치
0
198
2
declare global 로 선언된 타입을 확장하는게 아닌 좁히는것도 가능할가요?
0
148
2
typescript 강의를 보고 개발을 하다가 강의와 다른 내용인데 물어볼곳이 여기밖에 없어서 질문 드립니다.
0
237
1
강의에 필요한 사전준비와 예제 코드 첨부
1
311
1
local.ts 예제코드 첨부 합니다.
1
230
1
redux 예제코드 가져와서 강의 보면서 따라하는데
1
248
1
react 함수 컴포넌트 타이핑은 있는데 클래스 컴포넌트 타이핑 예제 코드가 없네요.
1
287
1
axios 1.6.0 버전으로 보고 있는데영
4
393
1
Module '"axios"' has no default export 에러 나시는분들
0
881
1
안녕하세요, 제로초님 타입스크립트 axios 분석 강의보고 궁금한점이 있어서 질문드립니다
1
389
1
안녕하세요. 제로초님 당신의 강의 매니아 입니다. typescript 모듈 관련 질문이 있어서요.
0
269
1
axios catch 에서 error 타입에 대해 as 없이 이렇게 사용하면 어떨까요?
0
406
1
global 선언 시 export {}
0
298
1
initialState가 제네릭 S인 이유가 잘 이해가 되지 않습니다.
0
312
1
declare module vs declare namespace
0
478
1
declare namespace vs namespace
0
500
2
"axios": "1.4.0" 버전 axios type 코드가 강의와 다릅니다!
0
561
1
Redux type 설정 과정에서 발생한 오류 질문 (ts[2345])
1
383
2
index.d.ts 에서 global declare 선언을 했을 때와 하지 않았을 때의 차이
0
409
1
미들웨어가 커링패턴으로 이루어진 이유
0
442
1





