객체의 모양은 필수, 선택, 읽기 전용, 동적 키로 고정한다

객체 타입을 읽을 때는 속성 이름보다 그 속성이 항상 필요한지, 바뀌면 안 되는지, 동적으로 열리는지를 먼저 본다.

질문판정
항상 있어야 하나?required 속성으로 계약의 중심을 고정
없을 수도 있나?optional 속성은 undefined 처리를 함께 요구
생성 후 바뀌면 안 되나?readonly로 외부 수정을 막음
키가 실행 중 늘어나나?index signature로 key/value 범위를 제한
기준해석
literal type한 번 쓰는 가까운 구조
interface여러 곳이 공유하는 이름 있는 계약
판단속성 규칙이 협업 표면이면 interface로 분리

핵심 객체 계약은 “무엇이 들어 있나”보다 “무엇을 믿고 써도 되나”를 적는 것이다.