TypeScript에서 Union 및 Intersection 타입 마스터하기: 예제와 함께하는 빠른 가이드

발행: (2026년 3월 18일 PM 11:08 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

Union Types

  • 변수나 매개변수가 여러 타입의 값을 가질 수 있을 때 유니언 타입을 사용합니다.

Syntax: typeA | typeB

Example:

let value: string | number;
value = "hello"; // valid
value = 42;      // valid
value = true;    // invalid

Intersection Types

  • 여러 타입을 하나로 결합하고자 할 때 인터섹션 타입을 사용합니다.
  • 결과 타입은 각 타입의 모든 속성을 가집니다.

Syntax: typeA & typeB

Example:

type A = { a: number };
type B = { b: string };
let obj: A & B = { a: 1, b: "hello" };

Key Differences

  • Union (|): 어떤 멤버 타입과도 일치하는 값을 허용합니다.
  • Intersection (&): 모든 멤버 타입을 만족하는 값이어야 합니다.

Practical Example

다음과 같이 사용자 타입이 있다고 가정해 보세요:

type Admin = { name: string; admin: true };
type User = { name: string; admin?: false };

type AnyUser = Admin | User; // Admin 또는 User 중 하나일 수 있음

function greet(user: AnyUser) {
  console.log(`Hello, ${user.name}`);
}

When to Use Them

  • 데이터가 서로 다른 형태를 가질 수 있을 때 유니언을 사용합니다.
  • 여러 요구사항을 하나의 타입으로 결합하고 싶을 때 인터섹션을 사용합니다.
0 조회
Back to Blog

관련 글

더 보기 »

Show HN: Tmux-IDE, OSS agent-first 터미널 IDE

tmux-ide New 1.2.0/docs/release-1-2-0 Claude 에이전트‑팀 레이아웃을 준비합니다. 리드 pane을 만들고, 팀원‑준비된 Claude pane을 구성하며, dev tools를 하나의 tmux layout에 배치합니다. t...

Show HN: 내 비행기에 Starlink가 있나요?

개요 Starlink가 탑승한 비행기를 타볼 운이 있었다면, 그 hype를 이해할 수 있을 겁니다—실제로 작동합니다! 하지만 비행기에서의 이용 가능성은 고르지 않습니다.