Skip to content

SetRequired

객체에서 고른 키만 필수로 바꿔요. Required는 모든 키를 한꺼번에 바꾸지만, SetRequired는 지정한 키만 건드려요.

typescript
type Ready = SetRequired<T, K>;

사용법

SetRequired<T, K>

선택적이던 키에 값이 확실히 있다는 것을 알게 된 다음에 사용하세요. 값이 있는지 검사를 마친 뒤에 자주 써요.

typescript
import type { SetRequired } from 'es-toolkit/types';

interface User {
  id: number;
  name: string;
  avatar?: string;
}

// 여기서부터는 프로필 사진이 반드시 있는 타입이에요.
type ProfileUser = SetRequired<User, 'avatar'>;
// => { id: number; name: string; avatar: string }

declare function renderProfile(user: ProfileUser): void;

function render(user: User) {
  if (user.avatar != null) {
    renderProfile(user as ProfileUser);
  }
}

A | B처럼 여러 타입 중 하나인 값에 써도, 나중에 if로 어느 쪽인지 가려낼 수 있어요.

typescript
type Method = { kind: 'card'; cardNo: string; note?: string } | { kind: 'bank'; accountNo: string; note?: string };

function f(v: SetRequired<Method, 'note'>) {
  if (v.kind === 'card') {
    return v.cardNo; // 카드 쪽으로 좁혀져요
  }
  return v.accountNo;
}

타입 파라미터

  • T: 바꿀 객체 타입이에요.
  • K: 필수로 만들 키예요. T의 키여야 해요.

MIT 라이선스에 따라 배포됩니다.