[typescript] 유니온 타입과 인터섹션 타입의 차이점은 무엇인가요?
유니온 타입
유니온 타입은 “ | ” 기호를 사용하여 여러 타입을 하나로 결합하는 방식을 말합니다. 이는 값이 여러 타입 중 하나일 수 있음을 나타냅니다. |
예를 들어,
type MyType = string | number;
let value: MyType;
value = "Hello"; // 유효
value = 10; // 유효
value = true; // 에러: boolean 타입은 유니온 타입에 포함되지 않음
인터섹션 타입
인터섹션 타입은 “&” 기호를 사용하여 여러 타입을 결합하는 방식을 말합니다. 이는 값이 여러 타입을 모두 만족해야 함을 나타냅니다.
예를 들어,
type Person = { name: string } & { age: number };
let person: Person;
person = { name: "John", age: 30 }; // 유효
person = { name: "Anna" }; // 에러: age 속성이 없음
person = { name: "Michael", age: "25" }; // 에러: age 속성이 숫자가 아님
차이점
- 유니온 타입은 여러 타입 중 하나일 수 있는 값을 표현하고, 인터섹션 타입은 여러 타입을 모두 만족해야 하는 값을 표현합니다.
-
유니온 타입은 “ ” 기호를 사용하고, 인터섹션 타입은 “&” 기호를 사용합니다.
따라서, 이러한 차이로 인해 각각의 타입은 다르게 동작하며, 개발자는 상황에 맞게 적절한 타입을 선택하여 사용해야 합니다.