이 연습에서는 id
, name
, email
등 몇 가지 속성을 가진 객체가 포함된 프로미스를 반환하는 getUser
함수가 있습니다.
const getUser = () => {
return Promise.resolve({
id: "123",
name: "John",
email: "[email protected]",
});
}
getUser
위로 마우스를 가져가면 객체가 Promise
타입으로 래핑된 것을 볼 수 있습니다.
// Displayed while hovering
const getUser: () => Promise<{
id: string;
name: string;
email: string;
}>
함수가 반환하는 것을 프로미스로 래핑하는 Promise.resolve
를 반환하기 때문입니다.
getUser
에서 반환 타입을 가져오려면 이전 연습에서 본 것처럼 ReturnType
유틸리티 타입을 사용해 볼 수 있습니다.
type ReturnValue = ReturnType<typeof getUser>;
그러나 이 경우에도 반환 값은 여전히 Promise
타입으로 래핑됩니다.
// Displayed while hovering over ReturnValue
const ReturnValue = Promise<{
id: string;
name: string;
email: string;
}>
여러분은 임무는 아직 사용하지 않은 유틸리티 타입을 사용하여 기다리던 프로미스의 결과를 추출하는 것입니다.