패스잇
프론트엔드 개발 · 심화

TypeScript 4.0에서 도입된 Variadic Tuple Types를 활용하여, 인자의 개수나 타입이 동적으로 변하는 함수 시그니처를 어떻게 타입 안전하게 정의하고 활용할 수 있을까요? 특히, 함수 오버로드와 조합하여 유연하면서도 강력한 타입 추론을 제공하는 방법을 설명해주세요.

힌트 · `...rest` 매개변수에 `[...T]`와 같은 형태로 Variadic Tuple Types를 적용하여 인자의 길이나 타입을 가변적으로 정의할 수 있습니다. 이를 통해 함수 오버로드의 복잡성을 줄이고 더 유연한 함수 시그니처를 만들 수 있습니다.

Variadic Tuple Types제네릭함수 오버로드타입 추론타입 안전성

모범답안

TypeScript 4.0의 Variadic Tuple Types는 인자 개수나 타입이 동적으로 변하는 함수를 타입 안전하게 정의하는 데 매우 유용합니다. ...rest 매개변수와 함께 [...T] 형태를 사용하면, 튜플 타입 T에 따라 인자의 타입과 개수가 달라지는 함수를 만들 수 있습니다.

예를 들어, 여러 타입의 인자를 받아 처리하는 함수를 생각해 봅시다. 함수 오버로드를 사용하면 각 경우마다 시그니처를 정의해야 하지만, Variadic Tuple Types를 활용하면 제네릭과 함께 더 간결하게 표현할 수 있습니다.

function processData<T extends any[]>(...args: [...T]): void {
  // args를 기반으로 데이터 처리
}

이때, 함수 오버로드와 조합하면 더욱 강력한 타입 추론을 제공할 수 있습니다. 특정 타입의 인자가 들어왔을 때, 다른 타입으로 변환하거나 특정 로직을 수행하도록 정의할 수 있습니다. Variadic Tuple Types는 함수 오버로드의 복잡성을 줄이면서도 유연하고 타입 안전한 함수 시그니처를 가능하게 합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 TypeScript 면접 질문

← TypeScript 면접 질문 전체 보기