Awaited - easy - [Type Challenge]

강성훈·2023년 1월 25일
0

type-challenges

목록 보기
7/20
post-thumbnail

by Maciej Sikora @maciejsikora

문제

Promise와 같은 타입에 감싸인 타입이 있을 때, 안에 감싸인 타입이 무엇인지 어떻게 알 수 있을까요?

type ExampleType = Promise<string>

type Result = MyAwaited<ExampleType> // string

해결해야 할 문제는 Promise 타입으로 감싸진 타입을 반환시켜야하는 것입니다.

솔루션

먼저 만들 제네릭은 한개의 타입변수를 받을 것이다. Promise타입이다.

type MyAwaited<T>

그리고 조건 부 내에서 타입을 추론합니다.

type MyAwaited<T> = T extends Promise<infer InnerType> ? InnerType : T;

만약 Promise로 감싸진 타입이 맞다면 감싸진 타입을 반환시키고 promise가 아니라면 그냥 기존 타입을 그대로 반환시킵니다.

profile
고등학생 주니어 개발자

0개의 댓글