[typescript] 클래스 상속과 인터페이스 구현의 관계에서 발생할 수 있는 오류는 무엇인가?

이러한 오류를 방지하려면 클래스가 인터페이스에서 요구하는 모든 속성과 메서드를 구현해야 합니다. 또한, 클래스가 인터페이스를 상속하고 있는지 확인해야 합니다. TypeScript는 이러한 오류를 컴파일 시점에 감지하여 안정성을 높일 수 있습니다.

간단한 예제로 설명드리겠습니다. 만약 Shape 인터페이스가 getArea 메서드를 요구하고, Circle 클래스가 Shape 인터페이스를 구현하는데 getArea 메서드를 구현하지 않은 경우, TypeScript는 “Property ‘getArea’ is missing in type ‘Circle’“와 같은 오류를 발생시킬 것입니다.

interface Shape {
  getArea(): number;
}

class Circle implements Shape {
  radius: number;
  constructor(radius: number) {
    this.radius = radius;
  }
  // getArea 메서드를 구현하지 않음
}

// TypeScript 오류: Property 'getArea' is missing in type 'Circle'

이러한 오류를 해결하기 위해서는 Circle 클래스에서 getArea 메서드를 구현하거나, Circle 클래스가 Shape 인터페이스의 요구사항을 충족하고 있는지 다시 확인해야 합니다.

참고 문헌: