한 입 크기로 잘라먹는 타입스크립트 - 함수 오버로딩
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); // 오버로드 시그니쳐 선언된 것
// 선언부, 구현부, 호출부 로 구성
한 입 크기로 잘라먹는 타입스크립트(TypeScript) 강의 | 이정환 Winterlood - 인프런
이정환 Winterlood | 문법을 넘어 동작 원리와 개념 이해까지 배워도 배워도 헷갈리는 타입스크립트 이제 제대로 배워보세요! 여러분을 타입스크립트 마법사🧙🏻♀️로 만들어드립니다., 프론
www.inflearn.com
'강의 실습 > 한 입 크기로 잘라먹는 타입스크립트(TypeScript)' 카테고리의 다른 글
인터페이스 (1) | 2024.11.11 |
---|---|
사용자 정의 타입 가드 (0) | 2024.11.04 |
함수 타입의 호환성 (0) | 2024.11.02 |
함수 타입 표현식과 호출 시그니쳐 (1) | 2024.11.01 |
함수 타입 (3) | 2024.10.31 |
댓글