inflearn logo
강의

講義

知識共有

TypeScriptで学ぶReact.js:基礎から最新技術まで完璧に

コンポーネントにデータを渡す 2

타입스크립트 타입이 불일치하는데 에러가 안납니다.

74

kmg

投稿した質問数 18

0

image.pngimage.pngimage.png

 

안녕하세요. App.tsx에서 스트링이랑 넘버로 보낸 이 후에 그 값을 받아오는 PrintValue.tsx에서 모든 타입들을 boolean으로 설정을 했는데 에러가 나고 있지 않습니다.

제가 뭘 잘못한건지를 아무리 찾아봐도 모르겠어서 질문을 올려봅니다...

강의 너무 잘 보고 있습니다.

 

react react-router redux-toolkit zustand react.js

回答 3

0

kmg

image.pngimage.pngimage.pngimage.pngimage.png

 

지금 연 파일은 제가 타이핑을 하지 않았고 다운로드 한 소스에서 받은 4-5 폴더를 열었습니다.

npm run dev를 하니 문제가 있어서

npm install 이후에

npm run dev를 했습니다.

 

0

sucoding

안녕하세요.

실제로 값을 전달받는 PrintValue.tsx 파일에서는 부모 컴포넌트로부터 boolean 타입의 값이 넘어올 것을 전제로 하고 있습니다. 따라서 해당 파일 내부에서 사용하는 변수들이 모두 boolean 타입으로 올바르게 처리되고 있다면, PrintValue.tsx 자체에서는 타입 에러가 발생하지 않습니다.

예를 들어 props.booleanValue.toString()의 경우, boolean 타입에도 toString 메서드가 존재하기 때문에 에러가 발생하지 않습니다.

반면, 에러는 PrintValue 컴포넌트에 값을 전달하는 App.tsx 파일에서 발생합니다. 첨부해주신 스크린샷을 보면 App.tsx 파일 탭이 빨간색으로 표시되어 있는데, 이는 해당 파일에 에러가 있다는 의미입니다. 즉, PrintValue 컴포넌트에 타입이 일치하지 않는 값을 전달하고 있기 때문에 에러가 발생한 것입니다.

또한 <PrintValue numberValue={30} ... /> 부분을 보시면 props 영역에 빨간 밑줄이 그어져 있는 것도 확인하실 수 있습니다. 해당 부분에 마우스를 올리면 구체적인 타입 에러 메시지를 확인하실 수 있을 것입니다.

정리하자면, 이번 타입 불일치 에러는 PrintValue 컴포넌트 내부가 아니라, 이 컴포넌트로 데이터를 전달하는 부모 컴포넌트(App.tsx) 에서 발생한 에러입니다.

참고 부탁드리겠습니다!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 면류관받는날까지님.

먼저, 질문 주신 내용을 읽어보니 App.tsx에서 PrintValue 컴포넌트에 numberValue, stringValue, 그리고 booleanValue라는 props를 넘겨주고 있습니다. 하지만, PrintValue.tsx에서 이 props들이 모두 boolean 타입으로 정의되어 있는 것 같습니다.

주요 원인:

  1. 타입 불일치: App.tsx에서 booleanValue를 “true”라는 문자열로 넘겨주고 있지만, PrintValue.tsx에서는 boolean 타입으로 기대하고 있기 때문에 타입 불일치가 발생하고 있습니다. 이로 인해 Typescript가 에러를 감지해야 하나, 환경 설정이나 컴파일러 옵션에 따라 에러 메시지가 보이지 않을 수 있습니다.

  2. 환경설정 문제: TypeScript 설정 파일인 tsconfig.json에서 strict 모드가 꺼져 있을 수 있습니다. strict 옵션이 비활성화되어 있으면 타입 불일치와 관련된 에러 메시지가 나오지 않을 수 있습니다.

해결 방법:

  1. 타입 일치시키기: PrintValue.tsx에서 정의한 props 타입을 App.tsx에서 넘겨주는 타입과 일치시킵니다. 예를 들어, booleanValue를 실제 boolean 타입인 true로 넘기거나, PrintValue.tsx에서 string 타입을 기대하도록 변경합니다.

  2. TypeScript 설정 확인: tsconfig.json 파일에서 strict 옵션이 true로 설정되어 있는지 확인해 보세요. 만약 없을 경우 다음과 같이 설정을 추가할 수 있습니다:

    {
     "compilerOptions": {
       "strict": true,
       // 다른 옵션들...
     }
    }
    

관련하여 도움이 될 수 있는 추가 자료 링크를 제공합니다:
- TypeScript에서 엄격한 타입 체크 및 설정 방법

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

kmg

바로 답변 주셔서 감사합니다.

마우스를 올려보니 에러가 나고 빨간줄이 나오는 것은 확인 했습니다.

그런데.. 타입스크립트를 써서 타입이 안맞으면 빨간줄에서 끝나는게 아니라.. 페이지가 열리는것 자체가 안되었으면 좋겠다는 생각은 들었습니다.

 

아직 아무것도모르지만..

아직 그런 단계가 아니라서 그런건지.,..

 

빠른 답변 감사합니다!!

cloudinary 관련

0

38

3

useOptimistic 실전-1 useState

0

58

2

discord 초대장 갱신이 필요한거같습니다.

0

59

1

할일 관리 앱(메모이제이션)

0

79

2

Web 플랫폼 등록

0

101

2

함수 정의 기준

0

76

2

fetch는 사용되는가

0

75

2

전역상태 관리 선택 기준

0

82

2

tailwind css는 언제 사용되는가 또 다른 css와의 차이

0

148

2

카카오 web플랫폼 등록

0

136

2

컴포넌트 그리고 폴더 구조에 대해

0

58

2

152강 보는중입니다. 초시계부분이구요. 넘버가 timeout을 받을수없다는 에러가 나오고 있어요

0

41

1

폼테그 다른 태그를 하나의 상태 객체로 묶기

0

43

2

class를 className으로 전부 수정하실 때

0

41

2

JWT에 대한 개념도 학습할 수 있나요?

0

63

2

수업자료 다운로드

0

51

2

리액트 객체의 타입을 알기위하여 마우스를 올렸을 때 나오는 형식이 강의와 다른 부분 문의 드립니다.

0

64

2

useState 자동생성 하실때 누른 키보드가 궁금합니다.

0

51

1

default format >> prettier 이 실행이 안됩니다.

0

65

2

윈도우 사용자입니다. homebrew 윈도우 설치법은 없나요?

0

337

3

리렌더링 관련 문의

0

56

2

공부 방향에 대해서

0

62

2

form action 과 onSubmit

0

59

2

카카오로그인 에러

0

74

3