mapping modifiers

매핑 수정자 효과표

매핑된 타입은 키를 순회하면서 선택성, 읽기 전용 여부, 값 타입을 독립적으로 조정할 수 있습니다.

?

선택 속성 추가

Partial<T>처럼 모든 필드를 있어도 되고 없어도 되는 형태로 만듭니다.

-?

선택 속성 제거

Required<T>처럼 누락을 허용하지 않는 계약으로 바꿉니다.

readonly

변경 차단

Readonly<T>처럼 속성 재할당을 막는 타입을 만듭니다.

-readonly

변경 허용

읽기 전용으로 받은 타입을 내부 수정 가능한 복사본으로 바꿀 때 사용합니다.

원본
interface Config {
  readonly id: string;
  host?: string;
  port?: number;
}
정리 타입
type MutableRequired<T> = {
  -readonly [P in keyof T]-?: T[P];
};