반응형
interface IPerson
{
name: string;
age: number;
gender: string;
}
/**
* 인터페이스의 모든 프로퍼티를 optional하게 변경한다.
*/
type PartialPerson = Partial<IPerson>;
const partialPerson: PartialPerson =
{
gender: "male" // optional
}
/**
* 인터페이스의 모든 프로퍼티를 required하게 변경한다.
*/
type RequiredPerson = Required<PartialPerson>;
const requiredPerson: RequiredPerson =
{
name: "Jade", // required
age: 29, // required
gender: "male" // required
}
/**
* 인터페이스의 프로퍼티중 일부(name, age)만 받도록 설정한다.
*/
type PickPerson = Pick<IPerson, "name" | "age">;
const pickPerson: PickPerson =
{
name: "Jade", // required
age: 29, // required
// gender: "male" --> (X)
}
/**
* 인터페이스의 프로퍼티중 일부(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
}
반응형
댓글