더북(TheBook)
type A = string | boolean;
type B = boolean | number;
type C = A & B;
// type C = boolean

type D = {} & (string | null);
// type D = string

type E = string & boolean;
// type E = never

type F = unknown | {};
// type F = unknown
type G = never & {};
// type G = never

타입 CAB의 교집합이라고 생각해도 됩니다. 따라서 boolean이 됩니다.

타입 D{}string | null의 교집합입니다. {}에는 string이 포함되나 null은 포함되지 않습니다. 따라서 Dstring이 됩니다.

타입 E처럼 서로 간에 겹치는 것이 없다면 never가 됩니다.

타입 FG처럼 unknown과의 | 연산은 무조건 unknown이고, never와의 & 연산은 무조건 never가 됩니다. 이는 집합의 성질과 동일합니다. 전체집합과의 합집합은 항상 전체집합이고, 공집합과의 교집합은 항상 공집합입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.