가변 인수 함수: 함수 파라미터의 갯수를 가변적으로 받자
author: Dev.ian
createdAt: 2023-01-23
updatedAt: 2023-01-23
가변 인수 함수
- 함수를 호출할 때, 전달하는 매개 변수의 갯수를 제한하지 않는 함수를 의미
아래의 Code① 을 보면 merge 함수를 호출할 때, 매개 변수의 갯수가 달라도 실행되는 것을 확인 할 수 있다.
-
Code①
// 여러 개의 배열을 받아 합쳐 하나의 배열로 만드는 함수
const merge = (...arr: readonly string[][]): string[] => {
let result : string[] = [];
for (let idx = 0; idx < arr.length; idx++) {
const array: string[] = arr[idx];
result = [...result, ...array];
}
return result;
};
// 매개 변수 2개
const array1: string[] = merge(['Hello', 'World'], ['hello', 'world']);
// ["Hello", "World", "hello", "world"]
// 매개 변수 3개
const array2: string[] = merge(['java', 'script'], ['type', 'script'], ['react', 'vuejs', 'angular']);
// ["java", "script", "type", "script", "react", "vuejs", "angular"]
가변 인수 함수 선언 방법
-
전개 연산자 (
…
) 을 사용해서 선언할 수 있다. -
Code②
- Generic 타입으로 함수 선언
const merge = <T>(...arr: readonly T[][]): T[] => {
let result : T[] = [];
for (let idx = 0; idx < arr.length; idx++) {
const array: T[] = arr[idx];
result = [...result, ...array];
}
return result;
};
- Refs