[typescript] 클래스를 상속하여 새로운 타입을 만드는 방법

타입스크립트는 클래스를 상속하여 새로운 타입을 만드는 방법을 제공합니다. 이를 통해 기존 클래스를 확장하거나 수정하여 새로운 타입을 정의할 수 있습니다. 이번 포스트에서는 타입스크립트에서 클래스를 상속하여 새로운 타입을 만드는 방법에 대해 알아보겠습니다.

기존 클래스 상속

기존 클래스를 상속하여 새로운 타입을 만들 때는 extends 키워드를 사용합니다. 예를 들어, 다음과 같이 Animal 클래스를 상속하여 Dog 클래스를 만들 수 있습니다.

class Animal {
    name: string;

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

class Dog extends Animal {
    breed: string;

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

const myDog = new Dog('Buddy', 'Golden Retriever');

위 예제에서 Dog 클래스는 Animal 클래스를 상속하고 있으며, breed 속성을 추가로 갖고 있습니다.

메서드 오버라이딩

상속받은 메서드를 수정하거나 재정의할 수도 있습니다. 이를 메서드 오버라이딩이라고 합니다. 예를 들어, Animal 클래스에 makeSound 메서드가 있고, Dog 클래스에서 이 메서드를 재정의하여 “멍멍”이라는 소리를 내도록 할 수 있습니다.

class Animal {
    // ...

    makeSound() {
        console.log('Some generic sound');
    }
}

class Dog extends Animal {
    // ...

    makeSound() {
        console.log('Woof woof');
    }
}

const myDog = new Dog('Buddy', 'Golden Retriever');
myDog.makeSound(); // 출력: Woof woof

추상 클래스와 인터페이스

타입스크립트에서는 추상 클래스와 인터페이스를 사용하여 더 추상적인 타입을 정의할 수도 있습니다. 추상 클래스는 인스턴스를 생성할 수 없는 클래스이며, 인터페이스는 객체의 구조를 정의하는 역할을 합니다.

abstract class Shape {
    abstract draw(): void;
}

interface Printable {
    print(): void;
}

결론

타입스크립트를 사용하면 객체 지향 프로그래밍에서 클래스를 상속하여 새로운 타입을 만들거나 수정할 수 있습니다. 상속, 메서드 오버라이딩, 추상 클래스, 인터페이스 등을 활용하여 더 다양하고 유연한 타입을 정의할 수 있습니다.

더 많은 정보는 타입스크립트 공식 문서를 참고하세요.