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
- 데이터가 서로 다른 형태를 가질 수 있을 때 유니언을 사용합니다.
- 여러 요구사항을 하나의 타입으로 결합하고 싶을 때 인터섹션을 사용합니다.