OPEN HYPER STEP
← 목록으로 (TypeScript)
TS · 9 / 34
ts
CHAPTER 9 / 34
읽기 약 2
SYNTAX

유니온 & 인터섹션 타입 해부


핵심 개념

유니온 타입(A | B)은 A 또는 B 타입을 허용합니다. 인터섹션 타입(A & B)은 A와 B 타입을 모두 만족해야 합니다. 타입 가드(typeof, instanceof, in)로 유니온 타입을 좁힐 수 있습니다. 유니온 타입을 지우며 타입 분기가 어떻게 사라지는지 확인하십시오.

코드 분석
TS📋 코드 (31줄)
// type Result = Success | Failure (유니온)
  function processResult(result) {
    if ('data' in result) {
      return `[SUCCESS] 데이터: ${result.data}`;
    } else {
      return `[FAILURE] 오류: ${result.error}`;
    }
  }

  // type FullUnit = Base & Extended (인터섹션)
  const createFullUnit = (base, ext) => ({ ...base, ...ext });

  const results = [
    processResult({ data: 'T-800 온라인', status: 200 }),
    processResult({ error: '연결 실패', code: 404 }),
  ];

  const fullUnit = createFullUnit({ model: 'T-800', threat: 8 }, { location: 'LA', active: true });

  results.forEach(r => {
    const el = document.createElement('div');
    el.style.color = r.includes('SUCCESS') ? '#22c55e' : '#10b981';
    el.style.fontSize = '11px'; el.style.marginBottom = '4px';
    el.textContent = r;
    document.currentScript.parentElement.appendChild(el);
  });

  const el = document.createElement('div');
  el.style.color = '#f59e0b'; el.style.fontSize = '11px'; el.style.marginTop = '8px';
  el.textContent = '[INTERSECTION] ' + JSON.stringify(fullUnit);
  document.currentScript.parentElement.appendChild(el);

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

이 TS '유니온 & 인터섹션 타입' 코드에서
타입 에러·any 남용·타입 안전성 누락을 찾아
엄격한 타입으로 리팩토링해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

'유니온 & 인터섹션 타입'를 실무에서 사용하는
패턴 3가지를 비교표로 보여주고
각각의 적합한 케이스를 알려줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

이 TS '유니온 & 인터섹션 타입' 관련 코드 전체의 타입 구조를
분석하고 제네릭·유틸리티 타입으로
개선할 포인트를 정리해줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

TypeScript '유니온 & 인터섹션 타입'를 꼭 써야 하는지
개발 속도 vs 안전성 관점에서
솔직하게 평가해줘.

⭐ 이것만 기억하세요
유니온 & 인터섹션 타입 해부 이 3가지만 확실히 잡으세요
1.API 응답이 성공 객체일 수도 에러 객체일 수도 있는데, 하나의 타입으로는 둘 다 표현할 수 없습니다
2.유니온(A | B)은 A 또는 B, 인터섹션(A & B)은 A와 B를 모두 만족하는 타입입니다
3.다음 챕터에서 고정된 상수 집합을 타입으로 정의하는 열거형을 배웁니다


공유하기
진행도 9 / 34