해결된 질문
작성
·
203
0
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는 각 타입에 대한 조건을 평가하고 결과적으로 얻어진 타입들을 다시 유니온 타입으로 합치게 됩니다.
추가적으로 궁금한 사항이나 더 자세한 설명이 필요하신 경우, 언제든지 질문해 주시면 도움을 드리도록 하겠습니다.