필수 속성 확인
타입에 선언된 필수 속성이 객체에 모두 있는지 검사한다.
구조적 타입이라 이름보다 모양이 중요하다TypeScript에서 객체 타입은 속성 이름과 타입의 구조로 검사된다. 하지만 객체 리터럴을 바로 넣을 때의 초과 속성 점검, optional과 readonly, index signature, interface declaration merging까지 알아야 실제 오류를 읽을 수 있다.
타입에 선언된 필수 속성이 객체에 모두 있는지 검사한다.
구조적 타입이라 이름보다 모양이 중요하다optional 속성은 없을 수 있으므로 읽을 때 undefined 가능성을 다룬다.
exactOptionalPropertyTypes 설정에 따라 의미가 더 엄격해진다객체 리터럴을 바로 할당하면 오타처럼 보이는 추가 속성을 잡는다.
변수에 담은 뒤 할당할 때는 다르게 보일 수 있다readonly 속성은 재할당을 막지만 중첩 객체의 깊은 불변까지 자동 보장하지 않는다.
shallow readonly를 이해한다interface는 merging과 extends, type alias는 union과 mapped type에 강점이 있다.
둘은 겹치지만 완전히 같지 않다