이미 만들어둔 인터페이스나 타입을 재활용하기 위해 TS가 기본 제공하는 내장 마법 도구들입니다. Partial은 필수 항목들을 전부 옵션으로 느슨하게 풀어주고, Readonly는 모든 값을 얼려버립니다.
Partial
Readonly
interface User { name: string; age: number; } // 1. Partial<T>: 모든 속성을 선택적(?)으로 바꿔줌 (업데이트 API 짤 때 유용) type PartialUser = Partial<User>; // { name?: string; age?: number; } // 2. Readonly<T>: 모든 속성을 수정 불가 상태로 잠가버림 type ReadonlyUser = Readonly<User>; // 3. Record<K, T>: 객체의 Key와 Value 타입을 한방에 정의함 // 키는 무조건 string, 값은 무조건 숫자(점수)인 객체 type Scores = Record<string, number>; const mathScore: Scores = { "민수": 100, "철수": 85 };