함수의 매개변수와 반환타입을 모두 thype으로 미리 선언하는 것이다.
오버로딩은 함수의 이름은 동일하지만 매개변수가 다른 함수를 의미한다. 오버로딩은 함수가 여러개의 call signatures를 가지고 있을 때 발생한다.
기본적으로 함수는 다른 형태와 모양을 가지고있다. 타입스크립트에서는 함수가 다른 타입의 2~3개의 파라미터를 가질 수 있는 것을 의미한다.
number, boolean, string 등등 이미 지정되어있는 type을 말한다.
다양한 call signature가 필요한 경우 일일이 지정해 주는 것은 비효율적이고 이를 해결해주는 것이 generic type이다. generic은 우리가 요구한 대로 signature를 생성해줄 수 있는 도구이다.