학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 122 · 실전 면접 답변

Union과 Intersection은 값의 가능성을 어떻게 표현하나요?

이렇게 답해 보세요 (핵심 답변)

유니온 타입(A | B)은 값이 A 또는 B 중 어느 하나일 수 있다는 '선택지'를 표현하므로, 타입을 좁히기 전에는 모든 후보에 공통으로 존재하는 안전한 멤버에만 접근할 수 있습니다. 반대로 인터섹션 타입(A & B)은 값이 A의 조건과 B의 조건을 동시에 모두 만족해야 한다는 '결합'을 표현하므로 두 타입의 프로퍼티를 모두 가진 형태가 됩니다. 실무에서는 로딩·성공·실패처럼 상호 배타적인 상태를 모델링할 때 공통 리터럴 필드(예: status)를 둔 판별 유니온(Discriminated Union)을 가장 많이 활용합니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 유니온은 들어올 수 있는 값의 범위는 넓어지지만, 타입 가드 없이 바로 꺼내 쓸 수 있는 공통 프로퍼티는 두 타입의 교집합으로 제한됩니다.
  2. 인터섹션에서 두 객체 타입이 같은 이름의 프로퍼티를 서로 호환되지 않는 타입(예: string과 number)으로 가지면 해당 프로퍼티 타입이 never가 되어 값을 만들 수 없게 됩니다.

면접에서 자주 하는 실수

객체 유니온 타입(A | B)을 두고 타입을 좁히지 않은 채 한쪽에만 있는 프로퍼티에 바로 접근하거나 억지로 as 단언을 쓰는 습관을 피해야 합니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 122번을 바탕으로 질문과 답변을 새로 정리했습니다.

← TypeScript