
하나의 함수를 매개변수의 개수나 타입에 따라 여러가지 버전으로 만드는 문법
✅ 오버로드 시그니처
function func(a: number): void; function func(a: number, b: number, c: number): void;
- 함수 구현부 없이 선언식만 적어놓은 것을 오버로드 시그니처라고 부름
- 함수 이름이 같아도 오류가 발생하지 않는 것은 매개변수의 개수가 다르기 때문
function func(a: number): void;
function func(a: number, b: number, c: number): void;
// 함수 선언부
function func() {}
func(1);
func(1, 2, 3);
func(1)와 func(1,2,3)을 보면 해당 코드는 함수 구현부를 따라가는 것이 아니라, 오버로드 시그니처 중 인수 개수에 따라 하나의 버전을 따라간다.
그렇기 때문에 ?를 작성하여 필수적 매개변수를 선택적 매개변수로 변환해주도록 한다.
한 입 크기로 잘라먹는 타입스크립트
https://www.inflearn.com/course/한입-크기-타입스크립트/dashboard