728x90
반응형
타입스크립트가 추론한 타입을 사용할 때 컨디셔널 타입과 함께 사용함
Q : 그럼 이미 추론한 걸 그대로 두지 왜 infer로 끄집어내서 사용하려고 할까?
A : 복잡한 기능에선 쓰일 데가 있음
- 복잡한 타입 추론:
- TypeScript가 자동으로 추론하지 못하는 복잡한 상황에서 infer를 사용하여 원하는 부분만 추출하거나 변형할 수 있습니다.
- 예를 들어, 특정 함수의 반환 타입을 추출하거나, 제네릭 타입 내의 특정 부분만 추출할 때 유용합니다.
- 유틸리티 타입 작성:
- TypeScript에는 ReturnType이나 Parameters와 같은 유틸리티 타입이 있습니다. 이러한 유틸리티 타입은 infer를 사용하여 다양한 타입 정보를 추출합니다. 유틸리티 타입을 직접 정의하거나, 기존 유틸리티 타입을 변형할 때 infer가 유용하게 사용됩니다.
- 타입 안전성 강화:
- 복잡한 타입 조작을 할 때, infer를 사용하면 타입 안전성을 유지하면서도 동적인 타입 추론이 가능합니다.
- 특히 라이브러리나 프레임워크에서 타입을 보다 정교하게 조작해야 하는 경우, infer를 사용해 추론된 타입을 명확하게 관리할 수 있습니다.
- 조건부 타입과 결합:
- infer는 조건부 타입과 결합하여, 특정 조건에 따라 타입을 추론하고 그 결과를 타입 시스템 내에서 활용할 수 있습니다.
유틸리티 타입 - infer 예제 케이스
type MyReturnType<T> = T extends (...args: number[]) => infer R ? R : never;
function exampleFunction(props: number) {
return props ? { name: "Alice", age: 30 } : {};
}
// exampleFunction의 반환 타입을 추출
type Result = MyReturnType<typeof exampleFunction>;
let a: Result = {};
console.log(a);
함수의 반환 타입을 추출해서 쓰는 거임
728x90
반응형
'TIL' 카테고리의 다른 글
icon svg 컴포넌트 스타일 props 넘기기 (0) | 2024.10.04 |
---|---|
react - Suspense 이해 정리 (0) | 2024.08.19 |
타입스크립트 - enum (0) | 2024.08.18 |
타입스크립트 - class (0) | 2024.08.18 |
타입스크립트 공변성, 반공변성 (0) | 2024.08.11 |
댓글