왜 never인지 헷갈려서 계속 생각을 해보니 아래와 같아서 그런거 같습니다.
페이지 41 마지막 부분에서 풀어 설명하듯이 최종적으로 아래와 같이 됩니다.
type K = 'name' & ('birth' | 'death');
인터섹션(교집합)은 '유닛'을 합치는 건데 지금 보면 유닛이 아니라 유닛이 모인 '유니온' 값을 인터섹션 하려고 하니 혼란이 생겨서 never가 되는 거 같습니다.
사실 제 생각에는 name은 필수이고 birth나 death 값이 들어가면 통과한다는 개념으로 이해 되는데...
제가 생각한게 맞는건지 궁금하네요
나름대로 정리를 해보았습니다.
혼란스러운 요소를 줄이는 차원에서 death프로퍼티를 필수로 바꿨습니다 (?를 뺌)
이해가 되실런지 모르겠네요.
저도 뭔가 머리로는 알것 같은데 설명하기엔 애매하네요..
애초에 ['name' 이면서 동시에 'name'이 아닌 다른것] 은 존재하지 않는게 맞겠지요.
즉 'name은 필수'라는 부분은 틀린 것 같아요.
답글
웹나그네
2021.12.20답변을 기대하고 쓴 게 아닌데😂
답변 감사합니다
정재님 답글을 보고나니 생각되는게 인터섹션은 오직 객체 타입만을 위한 타입이다라고 생각이 되어지네요 그 외 타입들을 인터섹션 하면 never가 되버리고요
현재 책에서 배운데까지는 그렇게 생각하고 다음 아이템으로 넘어가는 게 제 정신건강에 좋을거 같습니다🤣