서로 다른 여러 개의 함수가 서로 다른 여러개의 Signature를 가질 때 발생한다.
type Add = {
(a: number, b:number) : number
(a: number, b:string) : number
}
const add : Add = (a,b) => {
if(typeof b === "string") return a
return a+b;
}
type Add = {
(a: number, b:number) : number
(a: number, b:number, c:number) : number
}
// c가 option 인 경우 (추가 옵션인경우)
// 선택사항
const add : Add = (a,b,c?:number) => {
if(c) return a + b + c;
return a + b
}
add(1,2);
add(1,2,3);