[typescript] 유니온 타입과 교차 타입의 차이점은 무엇인가요?

유니온 타입 (Union Types)

유니온 타입은 | 연산자를 사용하여 둘 이상의 타입을 조합하여 새로운 타입을 만드는 방법입니다. 예를 들어,

type MyType = number | string;

위 코드는 MyType이 숫자나 문자열 중 하나가 될 수 있음을 정의합니다. 따라서 MyType 변수는 숫자 또는 문자열 값을 가질 수 있습니다.

교차 타입 (Intersection Types)

교차 타입은 & 연산자를 사용하여 둘 이상의 타입을 결합하여 새로운 타입을 생성하는 방법입니다. 예를 들어,

type MyType = Type1 & Type2;

위 코드는 MyTypeType1Type2의 속성을 모두 가지고 있는 새로운 타입이 됨을 정의합니다. 즉, MyType 변수는 Type1Type2의 속성을 가집니다.

유니온 타입 vs. 교차 타입

유니온 타입은 주어진 타입 중 하나일 수 있지만, 교차 타입은 여러 타입을 결합합니다. 따라서 유니온 타입은 “또는” 관계를, 교차 타입은 “그리고” 관계를 나타냅니다.

이러한 차이점을 통해 TypeScript에서 타입 시스템을 보다 유연하게 활용할 수 있습니다.