객체의 모양은 필수, 선택, 읽기 전용, 동적 키로 고정한다
객체 타입을 읽을 때는 속성 이름보다 그 속성이 항상 필요한지, 바뀌면 안 되는지, 동적으로 열리는지를 먼저 본다.
| 질문 | 판정 |
|---|---|
| 항상 있어야 하나? | required 속성으로 계약의 중심을 고정 |
| 없을 수도 있나? | optional 속성은 undefined 처리를 함께 요구 |
| 생성 후 바뀌면 안 되나? | readonly로 외부 수정을 막음 |
| 키가 실행 중 늘어나나? | index signature로 key/value 범위를 제한 |
| 기준 | 해석 |
|---|---|
| literal type | 한 번 쓰는 가까운 구조 |
| interface | 여러 곳이 공유하는 이름 있는 계약 |
| 판단 | 속성 규칙이 협업 표면이면 interface로 분리 |
핵심 객체 계약은 “무엇이 들어 있나”보다 “무엇을 믿고 써도 되나”를 적는 것이다.