Pick
- type에서 key로 속성을 선택한 새로운 타입을 반환
- type은 속성을 가지는 인터페이스나, 객체타입이어야함
- 일부만 받게한다고 생각하면 편할듯
Pick<TYPE, KEY>
interface IUser {
name: string,
age: number,
email: string,
isValid: boolean
}
type TKey = 'name' | 'email';
const user: Pick<IUser, TKey> = {
name: 'Neo',
email: 'thesecon@gmail.com',
age: 22 // TS2322: Type '{ name: string; email: string; age: number; }' is not assignable to type 'Pick<IUser, TKey>'.
};
// 변경된 모습
interface INewType {
name: string,
email: string
}
/**
* 인터페이스의 프로퍼티중 일부(name,age)는 required
* gender는 optional로 받도록 설정한다.
*/
type PickPerson2 = Pick<IPerson, "name" | "age"> & Pick<Partial<IPerson>, "gender">;
const pickPerson2: PickPerson2 =
{
name: "Jade", // required
age: 29, // required
gender: "male" // optional
}