개발언어/TypeScript

type과 interface 차이

Ligion 2021. 4. 16. 13:00

 

타입과 인터페이스는 TypeScript의 버전이 올라가면서 함께 변화해갔다.

처음에는 타입의 기능이 약해서 인터페이스를 쓰라고 권장했지만

지금은 타입의 기능이 많이 강화되었는데 인터페이스와 사용성이 모호한 시점인듯하다.

그래서 역할을 정확히 나누는것이 좋다.

 

Interface

  • Class의 규격, Object 간 소통할 때 쓰는 규약
  • 이 인터페이스를 통해 구현해야하는 클래스가 있을 때
  • 재정의할 수 있다. (let처럼)

Type

  • 데이터의 타입 정의
  • 구현할 목적이 아니라 데이터를 담을 목적으로 사용
  • 재정의 할 수 없다. (const처럼)
  • type alias를 통해 원시타입, 배열, 유니온 타입 등을 별칭화 할 수 있다.