typescriptadvanced-types
TypeScript 고급 타입 - 유틸리티 타입과 조건부 타입
조회 0
TypeScript의 고급 타입 기능을 활용하면 타입을 더 정확하고 재사용 가능하게 만들 수 있습니다.
이 글에서는 유틸리티 타입, 조건부 타입, 매핑된 타입 등을 정리합니다.
1. 유틸리티 타입
interface User {
id: number;
name: string;
email: string;
age: number;
}
// Partial: 모든 속성을 선택적으로
type PartialUser = Partial<User>;
// Required: 모든 속성을 필수로
type RequiredUser = Required<PartialUser>;
// Pick: 특정 속성만 선택
type UserName = Pick<User, "name" | "email">;
// Omit: 특정 속성 제외
type UserWithoutAge = Omit<User, "age">;
// Record: 키-값 타입 정의
type UserMap = Record<string, User>;
2. 조건부 타입
type IsArray<T> = T extends any[] ? true : false;
type A = IsArray<[]>;
B = <>;
<T> = T (...: []) => infer R ? R : ;
getReturnType<T (...: []) => >(
: T
): <T> {
() <T>;
}