[TypeScript] 함수 오버로딩

kjy0124·2026년 2월 26일
post-thumbnail

🎯 함수 오버로딩

하나의 함수를 매개변수의 개수나 타입에 따라 여러가지 버전으로 만드는 문법

✅ 오버로드 시그니처

function func(a: number): void;
function func(a: number, b: number, c: number): void;
  • 함수 구현부 없이 선언식만 적어놓은 것을 오버로드 시그니처라고 부름
  • 함수 이름이 같아도 오류가 발생하지 않는 것은 매개변수의 개수가 다르기 때문

✅ 함수 구현부

function func(a: number): void;
function func(a: number, b: number, c: number): void;

// 함수 선언부
function func() {}

func(1);
func(1, 2, 3);
  • func(1)func(1,2,3)을 보면 해당 코드는 함수 구현부를 따라가는 것이 아니라, 오버로드 시그니처 중 인수 개수에 따라 하나의 버전을 따라간다.

⚠️ 구현부에 매개변수의 개수가 오버로드 시그니처에 작성된 매개변수 개수와 차이가 있을 때 아래 사진처럼 오류가 발생

  • 그렇기 때문에 ?를 작성하여 필수적 매개변수선택적 매개변수로 변환해주도록 한다.


출처

한 입 크기로 잘라먹는 타입스크립트
https://www.inflearn.com/course/한입-크기-타입스크립트/dashboard

profile
개발 공부...

0개의 댓글