인프런 커뮤니티 질문&답변
서로소 유니언 타입이 discriminated union과 동의어 인가요?
작성
·
9
0
🚨 필독) 질문하시기 전에 꼭 읽어주세요 (10초 소요)
제목을 구체적으로 작성해 주세요
✅ 좋은 예 : 감정일기장 Home 구현중 xx 이슈가 발생합니다.
⛔️ 나쁜 예 : 이거 왜 안되나요?, 오류나요 도와주세요 등
비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요!
코드의 이슈는 전체 프로젝트를 "링크 형태"로 올려주셔야 원인을 파악할 수 있습니다.
깃허브, 구글드라이브 등의 수단을 통해 링크 형태로 전달해주세요
직접 실행해보며 원인을 파악해야 하기 때문에 텍스트 형태로 붙여넣는건 삼가해주세요 🥲
답변이 도움이 되셨다면 답글 or 해결완료 버튼을 클릭해주세요
비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요!
제 답변이 여러분께 도움이 되었는지 저도 알고 싶어요 🥲
강의 내용에 궁금한 점이 있다면 몇 챕터의 몇 분 몇 초인지 알려주시면 더 좋아요
더 빠른 답변이 가능합니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. lv 3. 초보자님.
서로소 유니언 타입과 discriminated union(식별자 유니언)에 대해 궁금해 하시는군요. 이 두 용어는 매우 긴밀하게 관련되어 있지만, 같은 의미로 사용되지는 않습니다.
서로소 유니언 타입과 Discriminated Union
서로소 유니언 타입: 각각의 타입이 겹치지 않는 유니언 타입입니다. 각 타입이 고유의 프로퍼티를 가지며, 이 덕분에 다른 타입들과 구별될 수 있습니다.
Discriminated Union (식별자 유니언): 서로소 유니언 타입의 특수한 사례로 특정 프로퍼티(식별자)를 사용하여 각 유니언의 멤버 타입을 구별할 수 있는 유니언 타입입니다. 보통 이 식별자는 공통된 프로퍼티 명이지만, 각 멤버 타입에서는 다른 값을 가집니다.
식별자 유니언은 각 타입이 특정 “식별자” 프로퍼티를 가져야 하며, 이 프로퍼티에 따라 타입을 구분할 수 있게 설계합니다.
예시
type Circle = {
kind: 'circle';
radius: number;
};
type Square = {
kind: 'square';
sideLength: number;
};
type Shape = Circle | Square;
위 예시에서 kind 프로퍼티는 Shape 타입의 두 구성 요소를 구분하는 식별자 역할을 하며, 이를 통해 TypeScript는 런타임에 타입을 좁히고 적절한 검사를 수행할 수 있습니다.
추가적으로 궁금한 점이 있으시면 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
도움이 되었길 바랍니다. 감사합니다!




