본문 바로가기

Programming Language/TypeScript

[ TypeScript ] Type 과 Interface 의 차이점

객체 ⇒ interface 로 구현

Type 정의 ⇒ Type 으로 구현.

Type과 Interface의 **가장 큰 차이점은 확장 가능성**입니다.

Type은 이미 존재하는 타입을 조합하여 새로운 타입을 만들기 때문에, 이미 선언된 타입의 확장이 불가능합니다. 반면에 Interface는 이미 선언된 인터페이스를 확장하여 새로운 인터페이스를 만들 수 있습니다.

  • type
  • Type은 새로운 타입을 정의할 때 사용되며,예를 들어, 아래와 같이 **Person**타입을 정의할 수 있습니다.
type Person = {
  name: string;
  age: number;
};
  • interface
  • Interface는 객체의 구조를 정의할 때 주로 사용되며, 프로퍼티와 메서드의 이름, 타입, 파라미터 등을 정의할 수 있습니다.
interface IPerson {
  name: string;
  age: number;
}
  • 아래 예제에서 **IStudent**인터페이스는 IPerson 인터페이스를 확장하여 grade
  • 프로퍼티를 추가한 새로운 인터페이스를 만들었습니다.
interface IPerson {
  name: string;
  age: number;
}

interface IStudent extends IPerson {
  grade: number;
}

Type과 Interface 중 어떤 것을 선택해야 하는지는 개인적인 취향에 따라 다를 수 있습니다.

일반적으로 **객체의 구조를 정의할 때는 Interface를 사용하는 것이 좋으며,**

타입을 정의할 때는 Type을 사용하는 것이 좋습니다.