inflearn logo
강의

Khóa học

Chia sẻ kiến thức

TypeScript (TypeScript) được cắt thành từng miếng vừa một miếng ăn

Kiểu Union rời rạc (Discriminated Union)

서로소 유니언 타입이 discriminated union과 동의어 인가요?

131

lv3

1 câu hỏi đã được viết

0

🚨 필독) 질문하시기 전에 꼭 읽어주세요 (10초 소요)

typescript

Câu trả lời 2

1

winterlood

안녕하세요 lv 3. 초보자님 이정환입니다.

네 같은 개념입니다. 강의에서 소개한 "서로소 유니온 타입"은 영어로는 discriminated union 또는 tagged union이라고 불리는 개념을 한국어로 표현한 거예요.

"서로소"라는 표현은 수학의 서로소 집합(disjoint sets)에서 따온 건데, 각 멤버 타입이 서로 겹치지 않는다는 의미를 담고 있습니다. 결국 같은 개념인데 이름만 다른 거라서, 영어 자료에서 discriminated union이 나오면 "아 서로소 유니온 타입이구나!" 하고 이해하시면 됩니다!

0

lv3

넵 감사합니다! 용어에서 헷갈렸는데 친절하게 설명해주셔서 감사합니다:)
강의 잘 듣고 있습니다~!

0

communityai8509

안녕하세요, 인프런 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는 런타임에 타입을 좁히고 적절한 검사를 수행할 수 있습니다.

추가적으로 궁금한 점이 있으시면 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

도움이 되었길 바랍니다. 감사합니다!

인덱스드 엑세스타입 실무질문

0

19

2

모든 ts파일이 컴파일 되지 않습니다.(해결됨.)

0

96

4

핸드북 light/dark mode 관련 이슈가 있는 것 같습니다.

0

71

1

제네릭 클래스 핸드북 페이지가 undefined라고 나옵니다.

0

76

2

적절한 타입 찾기 React.ChangeEvent<HTMLInputElemen>

0

76

2

outDir 옵션 추가 후 컴파일 오류 질문

0

185

1

호출 시그니처 질문

0

112

2

조건부타입소개 중 함수오버로딩 활용 시 인수의타입과 함수의 반환값의 타입이 깨지는 문제

0

101

1

할인쿠폰 관련하여

0

228

2

프론트엔드에서의 인터페이스활용

0

142

2

안녕하세요 이정환님!

0

125

1

Node.js 설치에 관한 질문입니다.

0

130

2

함수 타입 호출 시그니처

0

92

1

35강. 모듈 보강은 라이브러리 파일을 직접 편집해야 하나요?

0

98

2

인터페이스 문법이 있는데 타입 별칭 문법은 왜 있나요?

0

153

4

마우스 호버 시 정보

0

134

2

vite으로 리액트 빌드하기를 업데이트해주세요.

1

115

2

타입가드를 만들어 사용하는 이유가 궁금합니다.

0

128

2

섹션 12가 너무 어려운데... 정상이겠죠..?

0

172

2

선생님.. 알고리즘도 강의해주시면안되나요

0

143

2

선생님은 어떻게 이런걸 아세요?

0

165

1

type: module

0

139

2

7:17초 업캐스팅 질문이있습니다!

0

107

1

슈퍼타입질문

1

105

2