-
카테고리
-
세부 분야
프론트엔드
-
해결 여부
미해결
Property 'search' does not exist on type 'DefaultRootState'.
20.10.22 08:32 작성 조회수 406
2
일단 기능 자체는 잘작동합니다. 데브툴즈에서도 state 입력되는 것 확인했구요
다만 useSelector에서 state의 search가 속성으로 있다는 것을 인식을 못하는것 같습니다.
useSelector구문 위에 // @ts-ignore를 추가하거나 아님 react-redux의 index.d.ts의 DefaultRootState를 수정해서 멤버를 수정해야 안뜨는데 왜 강사님 화면에서는 안뜨는데 저는 저런 에러 로그가 뜨는건지 신경이 쓰입니다.
답변을 작성해보세요.
2
이재승
지식공유자2020.10.22
안녕하세요
해당 에러는 타입스크립트가 보여주는 에러입니다
mac 사용자 기준으로 설명드릴게요
userSelector에 마우스 커서를 올리고 command 키를 누른 상태에서 클릭해주세요
아래 경로에 있는 파일이 열릴거에요
(안열린다면 수동으로 열어주세요)
/Users/{사용자이름}/Library/Caches/typescript/3.9/node_modules/@types/react-redux/index.d.ts
그리고 아래 코드를
export function useSelector<TState = DefaultRootState, TSelected = unknown>(
아래처럼 수정해주세요
export function useSelector<TState = any, TSelected = unknown>(
이렇게 하면 아마 에러는 사라질 것 같아요
에러가 나는 이유는,
jsconfig.json 의 checkJs=true 설정 때문에 vscode가 타입스크립트를 이용해서 타입 검사를 하는데요
state의 타입을 정의하지 않아서 발생하는 에러에요
위에 any라고 입력한 것은 state의 타입을 신경쓰지 않겠다라는 의미로 이해하시면 될 것 같아요
참고로 자바스크립트에서 타입을 제대로 입력하려면 JSDoc 을 꼼꼼하게 작성해야하는데요
사실 그렇게 하는 것 보다는 타입스크립트로 작성하는 게 더 낫긴합니다
1
0
답변 3