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)
  }
}