초과 속성 검사
- 타입스크립트는 객체에 초과되거나 예상치 못한 프로퍼티가 있는지 검사한다.
- 예상보다 많은 프로퍼티가 있는 경우 오류를 포착하도록 설계됐다.
초과 프로퍼티 검사 예시
객체 리터럴
- 타입스크립트는 객체 리터럴의 초과 프로퍼티에 대해 가장 엄격하다.
interface Person {
name: string;
age: number;
}
// 에러: nationality 라는 초과 프로퍼티가 발견됐다.
let person: Person = {
name: "Alice",
age: 30,
nationality: "Canadian", // 초과 프로퍼티
};
초과 프로퍼티 검사가 느슨한 경우
변수 할당
- 변수 할당의 경우 초과 프로퍼티 검사에 느슨하다.
- 타입 Narrowing 이 되는 경우 할당이 가능하다.
- 그러나 필수 프로퍼티 ex)
name 과 age 를 채우지 않는다면 역시 에러가 발생한다.
let person3 = {
name: "abc",
age: 10,
nationality: "Canadian",
};
// 에러가 나지 않고 정상적으로 할당된다.
let person4: Person = person3;