About
DetailedHTMLProps vs ComponentProps
컴포넌트를 생성할 땐 ComponentProps에 태그네임을 넣어 좀 더 편하게 타입을 만들 수 있다. 그렇지 않다면 DetailedHTMLProps의 제네릭에 넣을 HTML 속성을 찾아해매야 한다.
type DetailedHTMLProps<E extends HTMLAttributes<T>, T> = ClassAttributes<T> & E;
type ComponentProps<
T extends keyof JSX.IntrinsicElements | JSXElementConstructor<any>
> = T extends JSXElementConstructor<infer P>
? P
: T extends keyof JSX.IntrinsicElements
? JSX.IntrinsicElements[T]
: {};
SyntheticEvent
리액트는 브라우저의 이벤트를 램핑한 브라우저 마다 불일치하는 부분을 조정해둔 SyntheticEvent를 사용한다. 이에 따라 몇몇 이벤트는 브라우저와 직접적인 맵핑을 하지 않는다.