function example1(a: string, ...b: number[]) {}
example1('hi', 123, 4, 56);
function example2(...a: string[], b: number) {}
// A rest parameter must be last in a parameter list.
나머지 매개변수 문법을 사용하는 매개변수는 항상 배열이나 튜플 타입이어야 합니다. 나머지 매개변수를 한데 묶는 것이라 배열 꼴일 수밖에 없습니다. example1 함수에서 매개변수 b는 첫 번째 자리의 매개변수 a를 제외한 나머지 매개변수를 의미하고, 나머지 매개변수는 모두 숫자여야 합니다. example1에서 b는 [123, 4, 56]이 됩니다.
example2 함수에서는 에러가 발생하는데요. 나머지 매개변수 문법은 배열의 전개 문법과는 달리 매개변수의 마지막 자리에만 위치해야 합니다.
매개변수 자리에 전개 문법을 사용할 수도 있습니다.
function example3(...args: [number, string, boolean]) {}
// function example3(args_0: number, args_1: string, args_2: boolean): void
example3(1, '2', false);
function example4(...args: [a: number, b: string, c: boolean]) {}
// function example4(a: number, b: string, c: boolean): void