프로젝트를 하며 처음 접했고, 아직 공부 중이므로 실제 개발하며 마주한 에러 메시지 + 알게 된 부분 위주로 정리
https://github.com/nala723/The-Dreamer/issues/14
https://github.com/nala723/The-Dreamer/issues/20
https://github.com/nala723/The-Dreamer/issues/7
const handleColor = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
e.preventDefault()
const newColor = e.currentTarget.style.backgroundColor
// const newColor = (e.target as HTMLDivElement).style.backgroundColor
// 둘다 가능하다.
// 생략
}
const SEARCH_DREAM = 'SEARCH_DREAM' as const
: 액션 타입 선언 코드ReturnType<T>
ReturnType<typeof signInAct>
: 액션 생성 함수(signInAct)가 생성하는 액션 객체의 타입 declare function f1(): { a: number, b: string }
type T0 = ReturnType<() => string>; // string
type T1 = ReturnType<(s: string) => void>; // void
type T2 = ReturnType<(<T>() => T)>; // {}
type T3 = ReturnType<(<T extends U, U extends number[]>() => T)>; // number[]
type T4 = ReturnType<typeof f1>; // { a: number, b: string }
type T5 = ReturnType<any>; // any
type T6 = ReturnType<never>; // any
type T7 = ReturnType<string>; // Error
type T8 = ReturnType<Function>; // Error
declare global {
interface Window {
__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?: typeof compose;
}
}
// 리덕스 개발자도구와 미들웨어를 사용하기 위해서 window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ 를 사용. (크롬 확장 프로그램에 작성되어있는 자바스크립트 함수) 만약에 리덕스 개발자도구가 설치되어있지 않다면 일반 compose 를 사용
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;