함수명이 동일하지만 매개변수를 다르게 만들어 하나의 메소드로 다른 인자를 받을 수 있다.
자바스크립트에서는 안되지만 타입스크립트에서는 가능하다.
⇒ 타입을 다양하게 지정 위해서
오버로딩을 할 때는 순서를 지켜야한다.
- 함수 선언
- 함수 정의
- 함수 호출
예시 1
1function disp(n: number): void;
2function disp(n: number, s: string): void;
3function disp(n: number, s: string, n2: number): void;
4
5function disp(n: number, s?: string, n2?: number): void {
6 // ? 를 사용하여 s와 n2를 선택적으로 파라미터를 받는다.
7 console.log(n, s, n2);
8}
9
10disp(100); // 100 undefined undefined
11disp(200, '홍길동'); // 200 홍길동 undefined
12disp(300, '홍길동', 25); // 300 홍길동 25
13---
14
15function x(n: number): void;
16function x(n: string): void;
17
18function x(n: any): void {
19 console.log(n);
20}
21
22---
23
24function disp2(n: number): void;
25function disp2(s: string): void;
26function disp2(s: string, n: number): void;
27function disp2(n: number, s: string): void;
28
29function disp2(n: any, s?: any): void {
30 console.log(n, s);
31}