[typescript] 타입스크립트에서의 인터페이스와 클래스의 차이점
타입스크립트는 JavaScript에 타입을 추가한 언어로, 인터페이스와 클래스는 둘 다 타입 정의에 사용됩니다. 그러나 둘 사이에는 몇 가지 중요한 차이가 있습니다.
인터페이스 (Interfaces)
인터페이스는 타입을 정의하는 용도로 사용됩니다. 즉, 특정 개체가 가져야 하는 구조(속성과 메서드)를 정의할 때 주로 사용됩니다.
interface Shape {
color: string;
area(): number;
}
위의 예제에서 Shape
는 색상 속성과 면적 계산 메서드를 가져야 한다고 정의하고 있습니다.
인터페이스는 타입스크립트에서 강제 사항이 아닙니다. 즉, 해당 인터페이스를 구현하는 개체가 구조를 지켜야 하는 것을 강제하지 않습니다.
클래스 (Classes)
클래스는 인터페이스와 달리 실제로 구현을 갖는 객체지향 프로그래밍 구조입니다. 클래스는 속성과 메서드를 포함하며, 인터페이스와 달리 구체적인 구현이 가능합니다.
class Circle implements Shape {
color: string;
radius: number;
constructor(color: string, radius: number) {
this.color = color;
this.radius = radius;
}
area() {
return Math.PI * this.radius ** 2;
}
}
위의 예제에서 Circle
클래스가 Shape
인터페이스를 구현하여 area
메서드와 color
속성을 구체적으로 구현하고 있음을 볼 수 있습니다.
결론
인터페이스는 구조를 정의하는데 사용되고, 클래스는 실제 동작을 구현하는데 사용됩니다. 일반적으로, 구조를 설명하는 데는 인터페이스를, 그 구조의 구현을 포함하는 데는 클래스를 사용합니다.