콘텐츠로 이동

가변 인수 함수

가변 인수 함수: 함수 파라미터의 갯수를 가변적으로 받자

섹션 제목: “가변 인수 함수: 함수 파라미터의 갯수를 가변적으로 받자”
author: Onejay
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 타입으로 함수 선언
```typescript
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