Study/TypeScript
[Typescript] over loading
갈푸라떼
2022. 10. 6. 16:02
Overloading은 직접 작성하기보다 외부 라이브러리에 자주 보이는 형태로, 하나의 함수가 복수의 Call Signature를 가질 때 발생한다
예를 들어, Next.js의 라우터 push가 대충 두 가지 방법으로 페이지를 이동한다고 할 때,
router.push("/home");
router.push({
path: "/home",
state: 1
});
* Type지정
type Config = {
path: string,
state: number
}
type Push = {
(path: string): void,
(config: Config): void
}
const push: Push = (config) => {
if (typeof config === "string") {
console.log(config)
} else {
console.log(config.path)
}
}