TS 질문 ) 분산적인 조건부 타입

extends 양옆에 [] 대괄호를 씌어줌으로서 분산을 방지할 수 있는 것은 이해했으나
그 과정의 내용이 이해가 안되네요 ㅜㅜ
그냥 number, 거짓이 왜되며, | 유니온 타입 얘기를 하다 왜 갑자기 합집합 내용이 나오는지 모르겠습니다 ㅠㅠ
제가 이해력이 부족해 계속 질문하게 되네요 ㅜㅜ 늘 감사합니다 강사님
답변 2
0
안녕하세요 이정환입니다.
우선 Union Type은 우리말로 합집합 타입 입니다. Union을 직역하면 "합집합" 이라고 이해하시면 되겠습니다.이 내용은 우리 강의에서 Union과 Intersection Type을 설명하기 시작하는 "3섹션-대수타입"에 잘 나와있으니 참고하시면 좋을 것 같습니다 👍
추가로 "number, 거짓이 왜 되며"에 대해서는 제가 잘 못 알아듣겠어서요 ㅎㅎ... 구체적으로 어떤 상황이 궁금하신지 질문 주시면 다시 답변 드리겠습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
윤소미님의 질문에 대해 답변드립니다.
TypeScript의 조건부 타입에서 사용되는 extends 키워드는 특정 타입이 다른 타입을 확장(상속)하는지를 체크합니다. 여기서 분산 조건부 타입(distributive conditional types)이란, 조건부 타입이 유니온 타입에 적용될 때, 각 유니온 타입 멤버에 대해 개별적으로 조건을 적용하고 그 결과를 다시 유니온으로 합치는 것을 말합니다.
예시 코드에서 StringNumberSwitch<number | string>의 경우 number 또는 string에 조건부 타입을 각각 적용하게 됩니다. 이러한 분산적 처리 때문에 복잡한 타입 연산 결과가 나올 수 있습니다.
extends 양옆에 대괄호 []를 사용함으로써, TypeScript에게 해당 타입을 하나의 단위로 처리하도록 지시할 수 있습니다. 즉, 유니온 타입을 전체적으로 한 타입으로 받아, 분산 처리를 방지할 수 있습니다.
질문에서 언급하신 “그냥 number, 거짓이 왜 되며,” 부분과 관련해 조금 더 구체적인 설명이 필요할 것 같습니다. TypeScript에서 boolean 타입은 true 또는 false 값을 가집니다. number, string과 같은 다른 타입과 함께 사용되는 경우, 이들 간의 관계를 정의하는 데 있어 조건부 타입의 분산 처리가 어떤 식으로 이루어지는지에 대한 이해가 필요합니다.
|는 유니온 타입을 결합하는 연산자로 사용되며, 여러 타입 중 하나의 타입이 될 수 있음을 의미합니다. 분산 조건부 타입을 통해 이러한 유니온 타입에 대한 조건부 연산이 개별적으로 적용되면, TypeScript는 각 타입에 대한 조건을 평가하고 결과적으로 얻어진 타입들을 다시 유니온 타입으로 합치게 됩니다.
추가적으로 궁금한 사항이나 더 자세한 설명이 필요하신 경우, 언제든지 질문해 주시면 도움을 드리도록 하겠습니다.
제네릭 클래스 핸드북 페이지가 undefined라고 나옵니다.
0
21
2
적절한 타입 찾기 React.ChangeEvent<HTMLInputElemen>
0
34
2
outDir 옵션 추가 후 컴파일 오류 질문
0
71
1
호출 시그니처 질문
0
69
2
서로소 유니언 타입이 discriminated union과 동의어 인가요?
0
80
2
조건부타입소개 중 함수오버로딩 활용 시 인수의타입과 함수의 반환값의 타입이 깨지는 문제
0
72
1
할인쿠폰 관련하여
0
164
2
프론트엔드에서의 인터페이스활용
0
97
2
안녕하세요 이정환님!
0
95
1
Node.js 설치에 관한 질문입니다.
0
81
2
함수 타입 호출 시그니처
0
61
1
35강. 모듈 보강은 라이브러리 파일을 직접 편집해야 하나요?
0
68
2
인터페이스 문법이 있는데 타입 별칭 문법은 왜 있나요?
0
121
4
마우스 호버 시 정보
0
93
2
vite으로 리액트 빌드하기를 업데이트해주세요.
1
91
2
타입가드를 만들어 사용하는 이유가 궁금합니다.
0
86
2
섹션 12가 너무 어려운데... 정상이겠죠..?
0
140
2
선생님.. 알고리즘도 강의해주시면안되나요
0
104
2
선생님은 어떻게 이런걸 아세요?
0
134
1
type: module
0
100
2
7:17초 업캐스팅 질문이있습니다!
0
80
1
슈퍼타입질문
1
67
2
프로젝트 설치
0
108
2
enum은 비원시 타입이면서 열거형 타입이 되는건가요?
0
73
2





