[typescript] 상속과 구현을 사용하여 어떤 코드의 모듈화를 할 수 있는가?
TypeScript는 클래스 기반의 객체지향 프로그래밍을 지원하여 코드의 모듈화를 효과적으로 구현할 수 있습니다. 상속과 구현을 사용하여 코드를 모듈화할 때 유용한 방법에 대해 알아봅시다.
상속 (Inheritance)
상속은 부모 클래스의 속성과 메서드를 자식 클래스에서 재사용하는 기능을 제공합니다. 자식 클래스는 부모 클래스의 기능을 확장하거나 수정하여 재사용할 수 있습니다.
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
move(distance: number = 0) {
console.log(`${this.name}이 ${distance}만큼 움직였습니다.`);
}
}
class Dog extends Animal {
bark() {
console.log('멍멍!');
}
}
const dog = new Dog('멍멍이');
dog.bark(); // 멍멍!
dog.move(10); // 멍멍이이 10만큼 움직였습니다.
위 예제에서 Dog
클래스는 Animal
클래스를 상속받아 move
메서드를 호출하여 재사용하고, bark
메서드를 추가하여 확장하였습니다.
구현 (Implementation)
인터페이스를 사용하여 클래스가 특정한 속성과 메서드를 구현하도록 강제함으로써 모듈화할 수 있습니다. 이를 통해 코드의 일관성을 유지하고, 재사용성을 높일 수 있습니다.
interface Shape {
getArea(): number;
}
class Circle implements Shape {
radius: number;
constructor(radius: number) {
this.radius = radius;
}
getArea() {
return Math.PI * this.radius ** 2;
}
}
const circle = new Circle(5);
console.log(circle.getArea()); // 78.54
위 예제에서 Circle
클래스는 Shape
인터페이스를 구현하여 getArea
메서드를 갖도록 하여 모듈화하였습니다.
상속과 구현을 적절히 활용하여 TypeScript 코드를 모듈화하면, 코드의 가독성과 유지보수성을 향상시키고, 재사용 가능한 모듈을 구현할 수 있습니다.
이상으로 TypeScript에서 상속과 구현을 사용하여 코드의 모듈화하는 방법에 대해 알아보았습니다. 추가로 궁금한 점이 있다면 언제든지 질문해주세요!