유니온 타입(Union Type)이란?
자바스크립트의 OR 연산자(||)와 같이 A이거나 B이다 라는 의미의 타입
예시를 통해 의미를 파악해보자!
자료 1)
> Value의 타입이 string인데 number가 들어가서 오류가 남
자료 2)
> 이를 해결하기 위해 any로 지정하면 type을 지정하지 않은 것과 같음
자료 3)
> 이때 Union type “|” (or 연산자)를 사용 하여 이를 해결 할 수 있음
1) 타입을 지정하여 오류로부터 비교적 자유로워 질 수 있다
2) 타입 추론을 통해 자동완성기능을 제공하며 이로 인한 개발 생산성 향상
자료 4) 자동 완성 실패의 예시
자료 5) 추론을 통한 자동완성의 예시
getSomeone() 함수는 developer와 person 타입을 모두 가질 수 있다. 따라서 둘의 공통인 name이라는 속성을 사용 가능하다. 그러나 skill과 age는 인자로 들어올 someone의 타입에 따라 정의 되어 질 수 도 있고 정의가 불가능 할 수도 있다. 이를 typescript에서 추론하여 오류를 나타내고 있음.
인터섹션 타입(Intersection Type)이란?
인터섹션 타입(Intersection Type)은 여러 타입을 모두 만족하는 하나의 타입을 의미
자료 6)
> 유니온타입과 다르게 인터셉션 타입에서는 skill과 age가 오류 처리 되어 있지 않음. 그 이유는 getSomeone함수에서 사용될 someone이라는 인자는 developer와 person의 속성을 모두 만족하는 하나의 타입을 의미.
이처럼 & 연산자를 이용해 여러 개의 타입 정의를 하나로 합치는 방식을 인터섹션 타입 정의 방식이라고 한다.
자료 7) 인터섹션 타입