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)
}
}
'Study > TypeScript' 카테고리의 다른 글
[Typescript] Class 객체 지향 코드 (0) | 2022.10.07 |
---|---|
[Typescript] Generic (0) | 2022.10.06 |
[Typescript] call signature (0) | 2022.10.06 |
[TypeScript_study] type지정을 쉽게 하는 팁 (0) | 2022.07.24 |
[TypeScript] TypeScript & React SyntheticEvent(합성이벤트) (0) | 2022.07.22 |