[typescript] 클래스 상속과 인터페이스 구현을 사용하여 어떤 코드의 확장성을 높일 수 있는가?
TypeScript는 JavaScript에 정적 타입을 지원하므로, 코드의 안정성과 확장성을 높일 수 있습니다. 이는 클래스 상속과 인터페이스 구현을 통해 더욱 강화될 수 있습니다.
클래스 상속을 통한 확장
클래스 상속은 기존 클래스를 기반으로 새로운 클래스를 확장하는 데 사용됩니다. 이를 통해 기존 클래스의 기능을 재사용하고 확장하여 새로운 기능을 추가할 수 있습니다.
다음은 클래스 상속을 사용한 예제 코드입니다.
class Animal {
public name: string;
constructor(name: string) {
this.name = name;
}
public move(distance: number = 0) {
console.log(`${this.name} moved ${distance}m.`);
}
}
class Dog extends Animal {
constructor(name: string) {
super(name);
}
public bark() {
console.log("Woof! Woof!");
}
}
const dog = new Dog("Bobby");
dog.move(10);
dog.bark();
위 예제에서 Dog
클래스는 Animal
클래스를 상속받아 move
메서드를 사용할 수 있으면서, 새로운 bark
메서드를 추가하여 확장성을 높였습니다.
인터페이스 구현을 통한 확장
인터페이스 구현은 클래스나 객체가 특정 인터페이스의 조건을 충족시키도록 하는 데 사용됩니다. 이를 통해 코드의 유연성을 높일 수 있습니다.
다음은 인터페이스 구현을 사용한 예제 코드입니다.
interface Shape {
calculateArea(): number;
}
class Circle implements Shape {
constructor(private radius: number) {}
calculateArea() {
return Math.PI * this.radius ** 2;
}
}
const circle = new Circle(10);
console.log(circle.calculateArea());
위 예제에서 Circle
클래스는 Shape
인터페이스를 구현하여 calculateArea
메서드를 제공하고, 이를 통해 코드의 확장성을 높였습니다.
결론
TypeScript에서 클래스 상속과 인터페이스 구현을 활용하면 코드의 확장성을 높일 수 있습니다. 클래스 상속을 통해 기존 기능을 재사용하고 확장하며, 인터페이스 구현을 통해 유연성을 높일 수 있습니다.
이러한 기능들을 적절히 활용하여 TypeScript로 안정적이고 확장성 있는 코드를 작성할 수 있습니다.
참고 문헌:
- TypeScript 공식 문서: https://www.typescriptlang.org/docs/
- MDN Web Docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript