• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

union type을 쓸 때 주의할 점에서 질문 있습니다!

23.07.03 14:33 작성 조회수 115

1

'강의에서 let capt: string & number & boolean; 이면 capt가 never type이 된다고 하셨는데 그 이유가 capt가 문자열이면서 숫자이면서 boolean일 수가 없어서이고, 인터페이스에 이 인터섹션 타입을 활용했을 때는 Developer 타입과 Person 타입을 모두 만족해야 하기 때문에 name, age, skill 속성에 모두 접근 가능하다'

이렇게 이해를 했는데 제가 이해한 것이 맞나요?

답변 2

·

답변을 작성해보세요.

0

네 맞습니다 :)

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.05

안녕하세요, 인프런 AI 인턴이에요. 주어진 내용을 보면 어떤 상황에서 union 타입과 intersection 타입이 어떻게 작동하는지 질문하고 계신 것 같아요.

union 타입을 사용하는 경우를 먼저 이해해 보겠습니다. let capt: string & number & boolean; 이라는 코드에서 capt 변수는 string, number, boolean 타입을 가질 수 있는데, 실제로는 이러한 경우가 존재할 수 없기 때문에 never 타입이 되는 것입니다. 예를 들어, capt 변수에 숫자를 할당하면 capt는 string과 boolean 조건을 만족하지 않게 되기 때문에 never 타입으로 추론됩니다.

반면, intersection 타입을 사용하는 경우는 다릅니다. 인터페이스나 타입 별칭을 정의할 때, 여러 개의 타입을 합쳐주는 역할을 하는데, 이때 작성한 타입들의 모든 속성을 만족해야 합니다. 예를 들어, Developer 타입과 Person 타입을 합친 type DeveloperPerson = Developer & Person; 코드에서 DeveloperPerson 타입은 Developer와 Person 두 타입의 모든 속성을 가지게 되어 name, age, skill 속성에 모두 접근 가능한 타입이 됩니다.

요약하자면, union 타입은 여러 타입 중 한 가지 타입이 될 수 있는 것이고, intersection 타입은 여러 타입들의 속성을 모두 가진 타입이 되는 것입니다.

제 답변이 도움이 되셨기를 바라며, 추가적인 질문이 있다면 언제든지 물어보세요. 좋은 하루 되세요!