never타입
: 가장 작은 집합으로써, never 타입으로 선언된 변수의 범위는 공집합이기 때문에 아무런 값도 할당할 수 없습니다.const x: never = 12
// ~ '12'형식은 'never'형식에 할당할 수 없습니다.
unit 타입
: 한 가지 값만 포함하는 타입. 유닛타입이라고도 하고 리터럴 타입이라고도 합니다.type A = 'A';
type B = 'B';
type C = 'C' ;
Union 타입
: 두 개 혹은 세 개로 묶으려면 유니온 타입을 사용합니다.type AB = 'A' | 'B';
type AB12 = 'A' | 'B' | 12
타입스크립트 오류 중에 할당 가능한
이라는 문구를 볼 수 있습니다. 이 문구는 집합의 관점에서, ~의 원소 또는 ~의 부분집합을 의미합니다.
말했듯이 & 기호는 교집합을 의미합니다. 그래서 PersonSpan의 값은 공집합이라고 생각할 수 있다.
그러나 타입 연산자는 인터페이스의 속성이 아닌, 값의 집합(타입의 범위)에 적용됩니다.
그리고 추가적인 속성ㄹ 가지는 값도 여전히 그 타입에 속합니다.
출처: 이펙티브 타입스크립트, 저자 댄 배더캄