11. 잉여 속성 체크의 한계 인지하기

ClassBinu·2024년 4월 14일

잉여 속성 체크

잉여 속성 체크: TypeScript는 객체 리터럴이 할당될 때 해당 타입의 기대되는 속성만을 가지고 있어야 한다고 체크

TypeScript에서는 객체 리터럴을 직접 대입할 때 잉여 속성 체크를 수행한다.

예시

구조적 타이핑으로 이건 오류가 안 난다.
임시 변수(minsu)를 통해 잉여 속성 체크를 우회하는 방법
또는 타입 단언을 쓸 수도 있다.

잉여 속성 체크

interface Person {
  name: string;
  age: number;
}

const minsu: Person = {
  name: "minsu",
  age: 25,
  gender: "male", // 개체 리터럴은 알려진 속성만 지정할 수 있으며 'Person' 형식에 'gender'이(가) 없습니다.ts(2353)
};

임시 변수

interface Person {
  name: string;
  age: number;
}

const minsu = {
  name: "minsu",
  age: 25,
  gender: "male",
};

const person1: Person = minsu;

타입 단언

const person: Person = {
  name: "Alice",
  age: 25,
  salary: 50000  // 이 속성은 'Person' 인터페이스에 없습니다.
} as Person;

0개의 댓글