TypeScript - [overLoading]

박성원·2020년 11월 25일
1

TypeScript

목록 보기
7/9
post-thumbnail

함수 오버로드

인자 리스트가 다르고 함수명이 동일한 것을 '오버로딩 함수'라고 부른다.
typescript는 함수 오버로드 기능을 제공한다. (타입을 지정할 수 있기 때문)

인자 리스트는 3 가지를 의미한다.

매개변수의 데이터 타입
매개변수의 데이터 개수
매개변수의 데이터 순서

오버로드 구현은 순서를 지켜야한다.

오버로드 함수를 정의할 때 선택적 파라미터를 사용하여 구현한다.

  1. 함수선언
  2. 함수 정의
  3. 함수 호출
함수 오버로드 1
  1. 함수 선언
// 1. 함수 선언
function disp(n: number): void;
function disp(n: number, s: string): void;
function disp(n: number, s: string, n2: number): void;
  1. 함수 정의
// 2. 함수 정의
function disp(n: number, s?: string, n2?: number): void {
  // ? 를 사용하여 s와 n2를 선택적으로 파라미터를 받는다.
  console.log(n, s, n2);
}
  1. 함수 호출
// 3. 함수 호출
disp(100); // 100 undefined undefined
disp(200, '홍길동'); // 200 홍길동 undefined
disp(300, '홍길동', 25); // 300 홍길동 25
함수 오버로드 2 - 파라미터 갯수 같지만 타입이 다른경우 ( any )
  1. 함수 선언
function x(n: number): void;
function x(n: string): void;
  1. 함수 정의
function x(n: any): void {
  console.log(n);
}
  1. 함수 호출
x(10);
x('가나다');
함수 오버로드 3 - 다양한 파라미터
  1. 함수 선언
function disp2(n: number): void;
function disp2(s: string): void;
function disp2(s: string, n: number): void;
function disp2(n: number, s: string): void;
  1. 함수 정의
function disp2(n: any, s?: any): void {
  console.log(n, s);
}
  1. 함수 호출
disp2(100);
disp2('홍길동');
disp2(20, 'a');
disp2('a', 20);
profile
개발 일기장

0개의 댓글