• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

promise 컴파일시 에러

20.11.09 22:50 작성 조회수 109

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

비오님의 프로필

비오

질문자

2020.11.09

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

0

소닉님의 프로필

소닉

2021.01.06

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

0

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