[타입스크립트] Type Aliases vs Interface

Moon·2023년 7월 27일
0
post-thumbnail

Type Aliases와 Interface는 TypeScript에서 타입 정의를 하는 방법 중 두 가지이다. 두 방법 모두 객체, 함수, 클래스 등의 타입을 정의할 수 있으며, 각각의 장단점이 있다.

Type Aliases

Type Aliases는 새로운 타입을 정의하는 방법이다. 주로 Union 타입, Tuple 타입 등을 정의할 때 사용된다. 또한, 기존 타입에 별칭을 붙여서 가독성을 높일 수 있다.

type Person = {
  name: string;
  age: number;
};

type Point = [number, number];

type Status = "active" | "inactive";

Interface

Interface는 객체의 타입을 정의하는 방법이다. 주로 객체의 구조를 명확하게 정의하거나, 클래스에서 구현해야 하는 메서드를 정의할 때 사용된다. 또한, extends 키워드를 사용하여 다른 인터페이스를 상속받을 수 있다.

interface Person {
  name: string;
  age: number;
}

interface Point {
  x: number;
  y: number;
}

interface Shape {
  color: string;
  draw(): void;
}

interface Shape1 extends Shape{
	id:number;
}

Type Aliases vs Interface

Type Aliases와 Interface는 둘 다 타입을 정의하는 방법이지만, 목적이 다르다. Type Aliases는 타입에 별칭을 붙여서 가독성을 높이거나, Union 타입, Tuple 타입 등을 정의할 때 사용된다. 반면에, Interface는 객체의 타입을 정의하거나, 클래스에서 구현해야 하는 메서드를 정의할 때 사용된다. 또한, extends 키워드를 사용하여 인터페이스 간에 상속(혹은 확장)이 가능하며, 이는 Type Aliases에서는 지원되지 않다.

따라서, Type Aliases와 Interface는 각각의 상황에 맞게 사용하는 것이 좋다.

profile
FE moon

0개의 댓글