Partial

객체의 일부 속성만을 포함한 부분 객체를 허용

interface Rectangle{
	width: number;
	height: number;
}

let rectPart: Partial<Rectangle> = {};
rectPart.width = 100;

console.log(rectPart); // { width: 100 }

Required

원 객체의 모든 속성을 필수로 한 완전 객체 생성

interface Car{
	company: string,
	model: string,
	mileage?: number, // 옵셔널이지만
}

let myCar: Required<Car> = {
	company: 'KIA',
	model: 'K5',
	mileage: 20, // 안 넣으면 컴파일 에러
}

Record

심플한 키-값 쌍, Map과 유사

const nameAndAge: Record<string, number> = {
	'John' : 20,
	'Jane' : 24,
}

Omit

객체 타입에서 특정 속성을 제거한 객체 생성

interface Rectangle{
	width: number;
	height: number;
}

const ractOmit: Omit<Rectangle, 'height'> = {
	width: 40,
}

Pick

Omit과 반대로 지정한 속성을 제외한 나머지 속성을 제거

interface Rectangle{
	width: number;
	height: number;
}

const ractPick = Pick<Rectangle, 'height'> = {
	height: 40,
}