유틸리티 타입: ‘기존의 타입을 조작해서 새로운 타입을 만드는 것’
유틸리티 타입의 자세한 사용방법은 아래 홈페이지를 참고하자.
공식홈페이지 설명 코드보다 더 간단한 코드의 예제가 있어서 코드를 긁어왔다.
공통 인터페이스
아래 예제들에 사용되는 인터페이스 타입이다.
interface IProfile { name: string; age: number; school: string; hobby?: string; }
Partial
- 선택적으로 타입을 생성함
type aaa = Partial<IProfile>;
- 바뀐 타입 결과
Required
- 모든 타입이 필수 설정으로 바뀐다.
type bbb = Required<IProfile>;
- 바뀐 타입 결과
Pick
IProfile
타입 중에서 name과 age만으로 타입 설정을 해준다.
type ccc = Pick<IProfile, 'name' | 'age'>;
- 바뀐 타입 결과
Omit
IProfile
에서 모든 프로퍼티를 선택하고키(school)
를 제거한 타입을 생성한다.
type ddd = Omit<IProfile, 'school'>;
- 바뀐 타입 결과: ‘school’ 이 사라짐
Record
Type
의 프로퍼티키
의 집합으로 타입을 생성한다.
// Union 타입 세가지 목록만 가능 type eee = '철수' | '영희' | '훈이'; type fff = Record<'name' | 'age', string>; type ggg = Record<eee, IProfile>;
- type fff는 name과 age만 가져오고
- type ggg는
type eee에 Iprofile를 매핑 시켜준다.
keyof
- 객체의 key들로 Union 타입을 만들 수 있다.
type hhh = keyof IProfile; // 'name' | 'age' |'school' | 'hobby'
댓글