더북(TheBook)

타입스크립트를 집합 관계로 보고, 다시 한번 벤다이어그램을 그려보겠습니다. 객체의 경우는 다음과 같이 표현할 수 있습니다.

▲ 그림 2-4 타입의 집합 관계

집합 관계에 따르면 { name: string }이 { name: string, age: number }보다 넓은 타입입니다. { name: string } & { age: number }는 교집합 관계에 따라 { name: string, age: number }이거든요.

그렇다면 { name: string } | { age: number }{ name: string, age: number } 또는 { name: string } 또는 { age: number }에 대입 가능할까요? 셋 다 할 수 없습니다. 합집합은 각각의 집합이나 교집합보다 넓기 때문입니다. 코드로 확인해보죠.

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