더북(TheBook)

Awaited에 타입 인수로 제공한 타입은 object & { then(onfulfilled : infer F, ...args : infer _) : anyextends합니다. 따라서 Vstring | number로 추론됩니다.

이는 실제 자바스크립트에서도 마찬가지입니다.

자바스크립트

(async () => {
  const thenable = {
    then(onfulfilled) {
      setTimeout(() => onfulfilled(42), 10);
    }
  };
  const v = await thenable; // 42
})();
// const v: number

thenable 객체는 Promise 인스턴스는 아니지만 await 연산자를 사용해 onfulfilled 함수의 인수를 반환할 수 있습니다. 자바스크립트와 타입스크립트 모두 구조적 타이핑을 적극 활용한다는 점을 기억하세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.