ts
CHAPTER 14 / 34
읽기 약 2분
SYNTAX
함수 타입 & 오버로드 해부
핵심 개념
TypeScript 함수는 매개변수와 반환값에 타입을 지정합니다. 선택적 매개변수(?)와 기본값, 나머지 매개변수(...rest)를 사용할 수 있습니다. 함수 오버로드로 다양한 타입의 입력을 처리합니다. 함수 타입을 지우며 타입 안전 호출이 어떻게 사라지는지 확인하십시오.
코드 분석
// (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