inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[2025] 비전공자도 가능한 React Native 앱 개발 마스터클래스

[Recap] 완성 + 전체 코드 해설

num 타입관련해서 문의드립니다

해결된 질문

95

David

작성한 질문수 1

1



   const TypedNumber = (num : any) => {
        setNumber((prev) => {
                if (prev === "0")  return  num;
                   return prev+ num;
                });
    };
    
image.png
num 타입으로 인해 오류가 나서 any로 지정을 해야만 하는데요.. 
강사님 코드에는 any 타입을 지정안해 오류가 아나는데 차이가 뭔가요?

javascript react node.js react-native typescript

답변 2

0

정현우

typescript같은 경우에는 이름에서도 확인하실 수 있듯이 매개변수에는 타입을 지정해 주어야 한다는 규칙이 존재합니다.

타입은

값: 값의 type

형태로 지정할 수 있습니다.

매개변수에 대해 제대로된 값이 매개변수로 들어왔는지 확인하라는 일종의 typescript 한정 권고사항같은 건데요(그래서 에러라고 알려주기만 하고 실제 앱을 실행할 때는 아무런 문제가 없는걸 확인하실 수 있습니다), 값에 지정할 수 있는 타입은 여러개가 있습니다.
number(숫자), string(문자열), boolean(참/거짓) 등등..

질문주신 any 존재유무의 차이같은 경우에 대해 답변드리자면
any 타입은 말 그대로 any, 즉 어떤 유형의 값이 들어와도 상관 없다고 명시해주는 것입니다.

그래서 기본적으로 값에 아무 타입도 적어주지 않으면 any 타입이 구성됩니다.

그래서 num 매개변수같은 경우에는 계산기 특성상 숫자가 문자열 형태로 들어오기 때문에

 const TypedNumber = (num : string) => { ... }

이라고 적어주시는 게 맞겠네요.

type의 설명같은 경우에는 마지막 프로젝트에서 자세한 설명이 있기 때문에 React Native의 핵심적인 기술을 다루는 초반 프로젝트에선 설명을 생략하였습니다.

요약: 매개변수에 들어올 값의 형태를 생각하여 타입을 지정해주시면 됩니다. (권고사항이므로 굳이 안하셔도 실행에 문제는 X)

궁금증이 해결되셨나요?

항상 소중한 질문 감사드립니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. David님.

TypeScript에서의 타입 관리 문제에 관해 질문 주셨네요. 작성하신 코드에서 TypedNumber 함수의 num 매개변수가 암시적으로 'any' 타입을 갖고 있어 오류가 발생한 것으로 보입니다. TypeScript는 명시적으로 타입을 지정하지 않을 경우 암시적으로 any 타입이 될 수 있으며, 이를 경고하게 됩니다.

하지만, 강사님의 코드에서는 주로 다음과 같이 타입을 명확히 지정하여 오류가 발생하지 않을 수 있습니다:

  1. 명시적인 타입 지정: TypedNumber 함수의 파라미터 num에 대해, 구체적인 타입을 지정하면 TypeScript 오류가 사라질 것입니다. 예를 들어 numnumber이어야 한다면, 다음과 같이 명시할 수 있습니다:
   const TypedNumber = (num : number) => {
        setNumber((prev) => {
                if (prev === "0")  return num.toString();
                return prev + num.toString();
        });
   };
  1. 타입 체킹을 사용함으로써: 엄격한 타입 체킹을 사용하면 TypeScript가 내부적으로 구문을 분석하고 문제를 발견했을 때 바로 잡을 수 있습니다.

  2. 컴파일러 옵션 확인: 프로젝트의 tsconfig.json 파일에서 strict 옵션이 켜져있는지 확인해 보세요. 이 옵션이 켜져 있으면 noImplicitAny 설정이 활성화되어 any 사용 시 경고를 줍니다.

관련하여 다른 수강생들과 구체적인 설정 및 해결 방법에 대해 논의된 게시물을 소개드립니다:

  • ### 설치 관련 질문
    • 이 게시물에서 명령어 사용과 관련한 문제와 해결 방법을 다루고 있습니다. 관련하여 프로젝트 설정 시 필요한 타입스크립트 설정에 대한 내용도 확인할 수 있습니다.

작업해 보신 내용에 대한 더 자세한 정보가 필요하시다면, 오류 메시지나 코드를 조금 더 제공해 주시면 더욱 구체적인 도움을 제공할 수 있습니다. 감사합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

앱 빌드 문의드립니다.

0

119

3

Bottom tabs navigator 설정

0

95

2

splash screen 화면이 안띄워져요.

0

196

2

sunriseData 코드

0

58

2

소유권을 확인할 수 없습니다.

0

176

2

stylecomponents 오류

0

310

3

4-3 UI 구성하기 화면

0

99

2

Mac Os / npx eas build --platform android --profile development 질문

0

156

2

npx expo start하면 왜 실행이안될까요?

0

361

2

안드로이드 구글 로그인 에러

0

378

4

'register' value관련 에러

0

64

2

MMKV 사용시 에뮬레이터에서 실행이 불가능한 이슈

0

226

4

App.tsx에서 Icon을 못가지고 오는 오류..('VectorIcons' could not be found ~)

0

171

3

iOS설정에 오류가 있는 것 같습니닷,,(info.plist 설정 오류)

0

319

2

안드로이드 스플래시 및 AppIcon설정 전체 과정 및 관련 질문

0

257

2

iOS에서 splash screen설정 오류

0

201

2

가상 시뮬레이터 실행

1

169

2

npx expo start 오류건...

0

304

3

명령 npx eas build --platform android --profile development 시 오류...

0

220

2

macOS개발환경 세팅

0

138

2

섹션7. 4강 5분 57초부터 api.json

0

98

2

섹션5. 날씨 앱 expo 버전

2

88

1

섹션4. 번역기 앱 expo 버전?!

1

140

2

계산기 앱 착오를 거친 수정버전

2

178

2