[typescript] 인터페이스로부터 어떤 규약을 상속받는가?

인터페이스 상속

인터페이스는 확장(extends)을 통해 다른 인터페이스로부터 속성을 상속받을 수 있습니다. 이를 통해 코드의 재사용성을 높일 수 있습니다.

예를 들어, Shape 인터페이스에 color 속성을 추가하는 ColoredShape 인터페이스를 만들어 보겠습니다.

interface Shape {
  name: string;
}

interface ColoredShape extends Shape {
  color: string;
}

위 예제에서 ColoredShape 인터페이스는 Shape의 구조를 상속받기 때문에, ColoredShape를 구현하는 클래스는 name 속성과 color 속성을 모두 가져야 합니다.

예제 코드

다음은 인터페이스를 상속받는 클래스의 예제 코드입니다.

class Circle implements ColoredShape {
  name: string;
  color: string;

  constructor(name: string, color: string) {
    this.name = name;
    this.color = color;
  }
}

위 코드에서 Circle 클래스는 namecolor 속성을 가져야 합니다.

인터페이스 상속을 통해 코드를 보다 모듈화하고 유지보수에 용이하도록 만들 수 있습니다.

결론

TypeScript에서는 인터페이스를 통해 다른 인터페이스로부터 속성을 상속받을 수 있습니다. 이를 통해 객체의 구조와 타입을 보다 효과적으로 정의할 수 있습니다.

많은 사용자들이 extend 키워드에 대해 의문을 품고 있으며, 실수를 겪고 있다. (TypeScript는 왜 “implements” 대신 “extend”를 사용하지 않나요?)

많은 사용자들은 TypeScript 홈페이지MDN 웹 문서를 참고했다.