함수 오버로딩

woodstock·2024년 1월 28일
0
post-thumbnail

함수 오버로딩

함수 오버로딩이란 하나의 함수를 매개변수의 개수나 타입에 따라 다르게 동작하도록 만드는 문법으로, TypeScript에서는 지원하지만 JavaScript에서는 지원하지 않는다.

타입스크립트에서 함수 오버로딩을 구현하려면 다음과 같이 버전별 오버로드 시그니쳐를 만들어 주어야 한다.

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

이렇게 구현부 없이 선언부만 만들어둔 함수를 오버로드 시그니쳐라고 한다.

그 다음 실제로 함수가 어떻게 실행될 것인지를 정의하는 부분인 구현 시그니쳐를 만들어 주어야 한다.

구현 시그니쳐의 매개변수 타입은 모든 오버로드 시그니쳐와 호환되도록 만들어야 한다.

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);
  }
}

profile
해내는 사람

0개의 댓글