더북(TheBook)

lib.es5.d.ts

interface Promise<T> {
  then<TResult1 = T, TResult2 = never>(
    onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, 
    onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null
  ): Promise<TResult1 | TResult2>;
  catch<TResult = never>(
    onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null
  ): Promise<T | TResult>;
}

일단 Promise.resolve('hi')Promise<string> 타입입니다. T 타입 매개변수가 string인 것이죠. 이후에 then 2개와 catch 1개가 붙어 있으므로 하나씩 살펴보아야 합니다. 첫 번째 then 메서드의 반환값 타입부터 파악해보겠습니다.

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