typescript util type: Awaited

Tony·2023년 6월 25일
0

typescript

목록 보기
17/22

함수의 리턴 타입은 아래와 같이 정의할 수 있다

"use client";
import { getProviders } from "next-auth/react";

export type Providers = ReturnType<typeof getProviders>;

만약 함수가 Promise를 반환한다면 Promise를 제거하는 유틸타입이 있지 않을까 해서 찾아봤다

Awaited

  • 타입스크립트 유틸타입 중 하나인 Awaited는 Promise를 제거한 타입을 사용할 수 있다
"use client";
import { getProviders } from "next-auth/react";

export type Providers = Awaited<ReturnType<typeof getProviders>>;

유니온 타입에서 특정 타입 제거하기

function getProviders(): Promise<Record<LiteralUnion<BuiltInProviderType, string>, ClientSafeProvider> | null>
  • getProviders() 함수의 타입은 위와 같다
  • 만약 null을 제외한 타입을 정의하고 싶다면 최종적으로 아래와 같이 타입을 정의할 수 있다
"use client";
import { getProviders, signIn } from "next-auth/react";

export type Providers = Exclude<Awaited<ReturnType<typeof getProviders>>, null>;

참고

profile
움직이는 만큼 행복해진다

0개의 댓글