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

발행: (2026년 3월 18일 오후 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

관련 글

더 보기 »

펜타곤, 법원 패소 후 기자에 새로운 제한 도입

펜타곤이 언론인 전용 작업 공간을 폐쇄하기로 결정했다는 소식이 전해졌다. 이 조치는 최근 보안 우려와 정보 유출 위험을 최소화하려는 방침의 일환으로, 기자들이 군사 시설 내에서 취재하고 자료를 정리하던 기존 구역을 더 이상 사용할 수 없게 만든다. 펜타곤 관계자는 새로운 보안 프로토콜에 따라 기자들이 별도의 승인 절차를 거쳐 제한된 구역에서만 활동할 수 있게 될 것이라고 밝혔다. 이 변화는 언론 자유와 군사 보안 사이의 균형을 둘러싼 논쟁을 불러일으키고 있다.