TypeScript : Utility 타입
TypeScriptTypeScript Utility Type?
유틸리티 타입은 공통 타입 변환을 용이하게 하기 위해 제공하는 타입 변화 방식이다. 이런 유틸리티들은 코드 전역에서 사용 가능하다.
Typescript Utility Type 예제
interface IProfile {
name: string;
age: number;
breed: string;
hobby?: string;
}
// 1. Pick Type
/*
type aaa = {
name: string;
age: number;
}
*/
type aaa = Pick<IProfile, 'name' | 'age'>;
// 2. Omit Type
/*
type bbb = {
name: string;
age: number;
hobby?: string | undefined;
}
*/
type bbb = Omit<IProfile, 'breed'>;
// 3. Partial Type -> 타입 조건을 optional하게 만듦
/*
type ccc = {
name?: string | undefined;
age?: number | undefined;
breed?: string | undefined;
hobby?: string | undefined;
}
*/
type ccc = Partial<IProfile>;
// 4. Required Type
/*
type ddd = {
name: string;
age: number;
breed: string;
hobby: string;
}
*/
type ddd = Required<IProfile>;
// 5. Record Type
type eee = 'Evie' | 'EV' | '이비'; // Union type
let myCat: eee;
/*
type fff = {
Evie: IProfile;
EV: IProfile;
이비: IProfile;
}
*/
type fff = Record<eee, IProfile>; // Record type
// type vs interface : 선언 병합 차이
interface IProfile {
numChuruAte: number;
} // IProfile에 numChuruAte 조건이 들어가게 된다.
더 많은 Utility Types
타입스크립트에서 제공하는 유틸리티 타입으로는 아래의 리스트가 있다.*
Partial<T>
Readonly<T>
Record<K,T>
Pick<T,K>
Omit<T,K>
Exclude<T,U>
Extract<T,U>
NonNullable<T>
Parameters<T>
ConstructorParameters<T>
ReturnType<T>
InstanceType<T>
Required<T>
ThisParameterType
OmitThisParameter
ThisType<T>