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

비오님의 프로필 이미지
비오

작성한 질문수

타입스크립트 입문 - 기초부터 실전까지

주요 메서드(조회) 타입 정의 및 실습 마무리

promise 컴파일시 에러

작성

·

147

1

function fetchContacts() : Promise<Contact[]> {
/* ... */
return new Promise( ...)

'Promise' only refers to a type, but is being used as a value here.라고 나옵니다.

이래저래 검색해보고는 new Promise<Contact[]>와 같이 붙여보기도 하고 tsconfig를 es6로 올려보거나 es2015.promise와 같은 컴파일 옵션을 줘도 마찬가지네요.

제 tsc 버전이 낮은가 싶어서 npx로 실행해봐도 마찬가지구요. 

제가 생각하는 가능성은 

1. Promise는 resolve와 reject시 다른 타입을 뱉어낼 수 있기 때문에, 위와 같은 선언은 에러가 난다.

2. 에러 메세지와 마찬가지로, new Promise를 생성자 함수인데, ts에서는 Promise를 type으로만 쓸수 있다? 입니다.

답변 3

1

비오님의 프로필 이미지
비오
질문자

자문자답입니다. npm i -D @types/node 설치 후 해결되었습니다. 하지만 이것이 왜 필요한지 잘 모르겠습니다...

0

이 부분 저도 궁금하네요..

0

안녕하세요 pius712님 제가 오늘까지 일이 좀 많았어서 질문 확인이 늦었네요. 답변이 늦어져서 죄송합니다..! :) 에러 상황도 잘 설명해 주시고 해결 방법도 잘 공유해 주신 것 같은데 저도 겪어보질 않은 문제라 좀 더 분석이 필요할 것 같습니다. 개인적인 추측으로는 아마 실습 코드를 작성해 나가는 과정에서 뭔가 타입 추론이 잘못 일어나지 않았을까 싶은데요. 혹시 관련해서 더 궁금하신 거 있으면 알려주세요 :)

비오님의 프로필 이미지
비오

작성한 질문수

질문하기