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 함수의 인수를 반환할 수 있습니다. 자바스크립트와 타입스크립트 모두 구조적 타이핑을 적극 활용한다는 점을 기억하세요.

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