이미 정의되어 있는 타입 구조를 변경하여 재사용하고 싶을 때 사용하는 타입
미리 정의해 놓은 내장 타입이기 때문에 타입스크립트를 설치한 후 설정 파일의 lib속성만 변경 해주면 된다.
{
"compilerOptions" : {
"lib": ["ESNext"]
}
}
interface Profile {
id: string;
name: string;
address: string;
}
type ProfileId = Pick<Profile, 'name' | 'address'>; // type ProfileId = { name: string; address: string; }
Pick<대상 타입, '대상 타입의 속성 이름'>
Pick<대상 타입, '대상 타입의 속성 이름 1' | '대상 타입의 속성 이름 2'>
특정 타입에서 속성 몇 개를 제외한 나머지 속성으로 새로운 타입을 생성할 때 사용하는 유틸리티 타입이다.
Pick과는 달리 특정 타입에서 속성 몇 개만 제외하고 나머지 타입으로 새로운 타입을 생성한다.
interface Profile {
id: string;
name: string;
address: string;
}
type ProfileId = Omit<Profile, 'address'>; // type ProfileId = { id: string; name: string; }
Omit<대상 타입, '대상 타입의 속성 이름'>
Omit<대상 타입, '대상 타입의 속성 이름 1' | '대상 타입의 속성 이름 2'>
출처: 쉽게 시작하는 타입스크립트