이 연습에서는 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;
}>
여러분은 임무는 아직 사용하지 않은 유틸리티 타입을 사용하여 기다리던 프로미스의 결과를 추출하는 것입니다.