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

함수 타입 & 오버로드 해부


핵심 개념

TypeScript 함수는 매개변수와 반환값에 타입을 지정합니다. 선택적 매개변수(?)와 기본값, 나머지 매개변수(...rest)를 사용할 수 있습니다. 함수 오버로드로 다양한 타입의 입력을 처리합니다. 함수 타입을 지우며 타입 안전 호출이 어떻게 사라지는지 확인하십시오.

코드 분석
TS📋 코드 (29줄)
// (model: string, threat: number, status?: string): string
  function createReport(model, threat, status = 'UNKNOWN') {
    return `[${model}] 위협도:${threat} 상태:${status}`;
  }

  // (...units: string[]): string
  function joinUnits(...units) { return units.join(' + '); }

  // 오버로드 시뮬레이션
  function process(input) {
    if (typeof input === 'string') return `문자열 처리: ${input.toUpperCase()}`;
    if (typeof input === 'number') return `숫자 처리: ${input * 2}`;
    if (Array.isArray(input)) return `배열 처리: ${input.length}개 항목`;
    return '알 수 없는 타입';
  }

  [
    createReport('T-800', 8, 'ACTIVE'),
    createReport('T-1000', 10),
    joinUnits('T-800', 'T-1000', 'T-X'),
    process('SKYNET'),
    process(800),
    process(['T-800', 'T-1000']),
  ].forEach(r => {
    const el = document.createElement('div');
    el.style.color = '#888'; el.style.fontSize = '11px'; el.style.marginBottom = '4px';
    el.textContent = r;
    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.콜백 함수의 타입을 any로 받으면 잘못된 시그니처의 함수를 전달해도 에러가 나지 않습니다
2.(a: string, b: number) => boolean 형태로 함수 타입을 정의하고, 오버로드로 입력별 다른 반환 타입을 선언합니다
3.다음 챕터에서 컴파일러에게 개발자가 타입을 확신할 때 쓰는 타입 어서션을 배웁니다


공유하기
진행도 14 / 34