Overloading
개요
Function Overloading
, Method Overloading
이라고 불리지만 핵심은 Overloading
- 실제로
Overloading
을 사용해서 코드 작성을 할일은 잘 없지만, 외부 라이브러리나 패키지에서 많이 사용하기 때문에 알고 있어야합니다.
정의
- 함수가 서로다른 여러개의
Call Signatures
를 가지고 있는 경우에 발생합니다.
예시
1) 완벽하진 않지만 오버로딩이 뭔지 알 수 있는 예시
2) 완벽한 예시, 실제 패키지나 라이브러리 디자인할 떄 사용
type Config = {
path: string,
state: object
}
type Push = {
(path: string): void
(config: Config): void
}
const push: Push = (config) => {
if(typeof config === "string") console.log(config);
else console.log(config.path);
}
3) 파라미터의 개수가 다를때 예시