강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

David님의 프로필 이미지
David

작성한 질문수

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

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

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

해결된 질문

작성

·

72

1



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

답변 2

0

정현우님의 프로필 이미지
정현우
지식공유자

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

타입은

값: 값의 type

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

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

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

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

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

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

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

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

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

궁금증이 해결되셨나요?

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

0

안녕하세요, 인프런 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 사용 시 경고를 줍니다.

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

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

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

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

David님의 프로필 이미지
David

작성한 질문수

질문하기