객체 리터럴 타입과 원시 타입 간 인터섹션 타입이 never가 아닌 이유
·
Frontend/JS, TS
책 "이펙티브 타입스크립트"의 아이템 37 "공식 명칭에는 상표를 붙이기" 부분을 읽던 중, 의문이 생겼다. 왜 객체와 원시 타입을 인터섹션하는데 never가 아닌 거지? 브랜디드 타입(Branded Type)을 공부하면서 생긴 의문을 정리하고자 이 글을 쓴다. 브랜디드 타입을 모르고 읽어도 무방하지만, 안다고 가정하고 글을 썼기 때문에 더 깊게 이해하고 싶다면 이 글을 추천한다. 객체 타입과 원시 타입의 인터섹션 살펴보기type A = number & object; // nevertype B = number & {}; // number & {}type C = number & { _brand: "C" }; // number & { _brand: 'C' } object의 타입은 정확히 object이다. 원..