[typescript] 타입 별칭과 인터페이스를 사용하여 클래스와 인터페이스의 관계 정의하기
타입스크립트에서는 타입 별칭과 인터페이스를 사용하여 클래스와 인터페이스 간의 관계를 명확하게 정의할 수 있습니다. 이 두 가지를 사용하는 방법과 상황을 살펴보겠습니다.
1. 타입 별칭(Type Alias)
타입 별칭은 특정 타입에 이름을 지어주는 것으로, 기존 타입이나 인터페이스를 확장하거나 새로운 타입으로 정의할 수 있습니다.
type Point = {
x: number;
y: number;
};
type Named = string;
type Greeting = () => string;
type Point2D = [number, number];
위 예제에서 Point
는 객체 타입을, Named
는 문자열을, Greeting
은 함수를, Point2D
는 튜플을 나타내는 타입 별칭입니다.
2. 인터페이스(Interfaces)
인터페이스는 객체의 구조를 정의할 때 사용됩니다. 클래스가 인터페이스를 구현할 때 해당 클래스는 인터페이스에 선언된 프로퍼티나 메서드를 구현해야 합니다.
interface Shape {
color: string;
}
interface PenStroke {
penWidth: number;
}
interface Square extends Shape, PenStroke {
sideLength: number;
}
위 예제에서 Shape
와 PenStroke
인터페이스를 Square
인터페이스에서 확장하여, Square
인터페이스는 color
, penWidth
, sideLength
프로퍼티를 가져야 합니다.
3. 클래스(Class)와 인터페이스(Interfaces)의 관계
클래스는 인터페이스를 구현(Implements) 할 수 있습니다. 클래스는 해당 인터페이스의 모든 프로퍼티와 메서드를 구현해야 합니다.
interface Printable {
print: () => void;
}
class Document implements Printable {
print() {
console.log('Document is being printed');
}
}
위 예제에서 Document
클래스는 Printable
인터페이스를 구현하고 있으며, print
메서드를 정의하고 있습니다.
결론
타입 별칭과 인터페이스는 클래스와 인터페이스의 관계를 명확하게 정의하고, 코드의 가독성을 높이는 데 도움을 줍니다. 적합한 상황에 맞게 타입 별칭과 인터페이스를 사용하여 코드를 작성할 수 있도록 노력해야 합니다.
이상으로 타입 별칭과 인터페이스를 사용하여 클래스와 인터페이스의 관계에 대해 알아보았습니다.