4. 구조적 타이핑

ClassBinu·2024년 4월 14일

"만약 그것이 오리처럼 걷고 오리처럼 꽥꽥거린다면, 그것은 오리다"라는 느슨한 타입 체크의 예로부터 유래

객체가 특정 인터페이스에서 요구하는 모든 속성을 가지고 있으면, 그 객체를 해당 인터페이스의 인스턴스로 간주

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

interface Cat {
  name: string;
  age: number;
  color: string;
}

function printPerson(person: Person) {
  console.log(person.name);
  console.log(person.age);
}

const cat: Cat = {
  name: "Tom",
  age: 3,
  color: "black",
};

// Person타입을 넣어야 하는데 cat로 Person에 선언된 멤버가 있으므로 가능
printPerson(cat); 

0개의 댓글