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

복잡한 비동기 데이터 처리 로직에서, 특정 조건에 따라 반환 타입이 동적으로 결정되는 함수를 TypeScript로 어떻게 안전하게 모델링하고 구현할 수 있을까요? 특히, 제네릭과 조건부 타입을 활용하여 Union Type을 분해하고 재구성하는 고급 기법을 설명해주세요.

힌트 · `infer` 키워드와 분산 조건부 타입을 사용하여 유니온 타입을 개별적으로 처리하고, 이를 재구성하는 방식을 고려해야 합니다. `Exclude`나 `Extract`와 같은 유틸리티 타입의 원리를 이해하는 것이 중요합니다.

제네릭조건부 타입Union Type타입 추론Promise

모범답안

네, 좋은 질문입니다. TypeScript에서 복잡한 비동기 데이터 처리 로직을 다룰 때, 반환 타입이 동적으로 결정되는 함수를 안전하게 모델링하는 것은 중요합니다.

제네릭과 조건부 타입을 활용하면 이 문제를 해결할 수 있습니다. 먼저, 제네릭을 사용하여 함수의 입력 타입에 따라 반환 타입을 결정합니다. 조건부 타입은 특정 조건에 따라 다른 타입을 반환하도록 정의할 수 있습니다.

Union Type을 분해하고 재구성할 때는 infer 키워드와 분산 조건부 타입을 활용합니다. infer는 조건부 타입 내에서 타입을 추론하는 데 사용되며, 분산 조건부 타입은 Union Type의 각 멤버에 대해 조건부 타입을 개별적으로 적용합니다. 예를 들어, ExcludeExtract와 같은 유틸리티 타입을 사용하여 특정 타입을 제외하거나 추출할 수 있습니다.

Promise를 반환하는 비동기 함수의 경우, 이 모든 기법을 조합하여 타입 안정성을 확보할 수 있습니다. 복잡한 로직일수록 타입 정의를 명확하게 하는 것이 중요합니다.

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

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

함께 보는 TypeScript 면접 질문

← TypeScript 면접 질문 전체 보기