하나의 함수를 매개변수의 개수나 타입에 따라 여러가지 버전으로 만드는 문법
// 버전들 -> 오버로드 시그니쳐
function func(a: number): void;
function func(a: number, b: number, c: number): void;
선언식이 없이 함수만 만들면 오버로드 시그니처
함수를 오버로드 하기위해서 각각 매개변수 별로 다른 버전을 위해
function func() {} //오류가 안남
오버로드 시그니쳐를 만들어놔서 오류가 안남.
이제부터 이 함수를 호출할때 인수들이 타입이 오버로드 시그니쳐의 하나의 타입을 따라감.