본문 바로가기
프론트엔드/TS 공부

함수 오버로딩

by 학습하는 청년 2024. 5. 28.

최종 수정 : 2024-05-28

함수 오버로딩

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

// 오버로드 시그니처 -> 버전들
function func(a: number): void;
function func(a: number, b: number, c: number): void;

// 구현 시그니처 -> 실제 구현부
// 매개변수 1개는 필수이므로 나머지는 옵셔널로 설정한다.
function func(a: number, b?: number, c?: number) {
  if (typeof b === "number" && typeof c === "number") {
    console.log(a + b + c);
  } else {
    console.log(a * 20);
  }
};

func(); // 불가능
func(1); // 가능
func(1, 2); // 불가능
func(1, 2, 3); // 가능

댓글