본문 바로가기
강의 실습/한 입 크기로 잘라먹는 타입스크립트(TypeScript)

함수 오버로딩

by Jint 2024. 11. 3.

한 입 크기로 잘라먹는 타입스크립트 - 함수 오버로딩

1. 함수 오버로딩
함수를 매개변수의 개수나 타입에 따라 여러가지 버전으로 정의하는 방법.
자바스크립트에선 지원이 안되고 타입스크립트에서 지원이 된다.

- chapter3.ts

/**
 * 함수 오버로딩
 * 하나의 함수를 매개변수의 개수나 타입에 따라 여러가지 버전으로 만드는 문법
 * -> 하나의 함수 func
 * -> 모든 매개변수의 타입 number
 * Ver1. 매개변수가 1개 -> 이 매개변수에 20을 곱한 값 출력
 * Ver2. 매개변수가 3개 -> 이 매개변수들을 다 더한 값 출력
 */
// 오버로드 시그니쳐 : 함수의 구현부 없이 선언
// -> 함수를 오버로딩하기 위해 각각 매개변수 별로 다른 버전을 명시해주기 위해 쓴다.
function func(a: number): void;
function func(a: number, b: number, c: number): void;

// 구현 시그니쳐 : 실제 구현부
// function func() {}
// 모든 오버로드 시그니쳐들이 의미 있도록 만들어야 함
function func(a: number, b?: number, c?: number) {
    if (typeof b === 'number' && typeof c === 'number') { // Ver2
        console.log(a + b + c);
    } else { // Ver1
        console.log(a * 20);
    }
}

// 함수가 오버로드 시그니쳐를 가지고 있으면,
// 함수 호출시 인수들의 타입이 구현부에 정의된 매개변수 개수나 타입을 따르지 않고
// 오버로드 시그니쳐들 중 하나의 버전을 따라간다.
// func();
func(1); // 오버로드 시그니쳐 선언된 것
// func(1, 2);
func(1, 2, 3); // 오버로드 시그니쳐 선언된 것

// 선언부, 구현부, 호출부 로 구성



참고링크 : https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%ED%81%AC%EA%B8%B0-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8#

 

한 입 크기로 잘라먹는 타입스크립트(TypeScript) 강의 | 이정환 Winterlood - 인프런

이정환 Winterlood | 문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙🏻‍♀️로 만들어드립니다., 프론

www.inflearn.com

댓글