함수를 매개변수의 개수나 타입에 따라 여러가지 버전으로 정의하는 방법
void
→ 반환값 타입int
== number
(js)※ 참고: 오버로드 시그니쳐 ※
함수의 구현부 없이 선언식만 써놓은 것 →
매개변수별로 다른 버전을 명시하기 위해 사용
// 버전들 -> 오버로드 시그니쳐
function func(a: number): void;
function func(a: number, b: number, c: number): void;
// 실제 구현부 -> 구현 시그니쳐
function func() {}
func(); // ❌ 오류
func(1);
func(1, 2); // ❌ 오류
func(1, 2, 3);
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);
}
}
func(1);
func(1, 2, 3);