중급 TypeScript - 고급 함수: 나머지 매개변수 및 기본 매개변수

고급 함수: 나머지 매개변수 및 기본 매개변수

고급 함수는 TypeScript에서 더 복잡한 기능을 제공하는 함수로, 특히 나머지 매개변수와 기본 매개변수를 통해 유연성을 높일 수 있습니다. 이 두 가지 개념은 함수를 정의할 때 필요한 인자의 수를 동적으로 조정하거나, 특정 값이 주어지지 않았을 경우의 대체 값을 설정하는 데 사용됩니다.

1. 나머지 매개변수 (Rest Parameters)

나머지 매개변수는 함수가 불확실한 수의 인자를 받을 수 있도록 해줍니다. 이를 통해 배열 형태로 여러 개의 인자를 받을 수 있으며, ... 연산자를 사용하여 정의합니다.

예시:

function sum(...numbers: number[]): number {
    return numbers.reduce((accumulator, current) => accumulator + current, 0);
}

console.log(sum(1, 2)); // 출력: 3
console.log(sum(1, 2, 3, 4)); // 출력: 10

위 예제에서 sum 함수는 어떤 개수의 숫자도 받아서 그 합계를 반환합니다. ...numbers 부분은 모든 추가적인 인자를 배열로 모아주는 역할을 합니다.

2. 기본 매개변수 (Default Parameters)

기본 매개변수는 호출 시에 해당 인자가 제공되지 않으면 자동으로 지정된 기본값을 사용하는 방식입니다. 이는 코드의 가독성을 높이고 오류를 방지하는 데 도움을 줍니다.

예시:

function greet(name: string = 'Guest'): string {
    return `Hello, ${name}!`;
}

console.log(greet()); // 출력: Hello, Guest!
console.log(greet('Alice')); // 출력: Hello, Alice!

위 예제에서 greet 함수는 이름이 제공되지 않을 경우 'Guest'라는 기본값을 사용합니다. 이렇게 하면 함수를 호출할 때 항상 이름을 입력하지 않아도 됩니다.

결합하기

나머지 매개변수와 기본 매개변수를 함께 사용할 수도 있습니다. 이를 통해 더욱 유연하고 강력한 함수를 만들 수 있습니다.

예시:

function createUser(username: string = 'Anonymous', ...roles: string[]): void {
    console.log(`Username: ${username}`);
    console.log(`Roles: ${roles.join(', ')}`);
}

createUser(); 
// 출력:
// Username: Anonymous
// Roles:

createUser('JohnDoe', 'Admin', 'Editor');
// 출력:
// Username: JohnDoe
// Roles: Admin, Editor

여기서 createUser 함수는 사용자 이름과 역할 목록을 받습니다. 만약 사용자 이름이 주어지지 않으면 'Anonymous'라는 기본값이 사용되며 역할 목록은 원하는 만큼 전달할 수 있습니다.

요약

  • 나머지 매개변수 (...)를 통해 다양한 개수의 인자를 배열 형태로 처리할 수 있다.
  • 기본 매개변수를 이용하면 특정 값이 없더라도 안전하게 함수를 호출할 수 있는 방법이다.
  • 두 기능은 함께 활용되어 더욱 유연하고 읽기 쉬운 코드를 작성하는 데 기여한다.

TypeScript에서는 이러한 고급 기능들을 활용하여 개발자가 보다 효율적이고 유지보수가 용이한 코드를 작성하도록 도와줍니다.

Subscribe to shimdh.log

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe