개발언어/TypeScript
type과 interface 차이
Ligion
2021. 4. 16. 13:00
타입과 인터페이스는 TypeScript의 버전이 올라가면서 함께 변화해갔다.
처음에는 타입의 기능이 약해서 인터페이스를 쓰라고 권장했지만
지금은 타입의 기능이 많이 강화되었는데 인터페이스와 사용성이 모호한 시점인듯하다.
그래서 역할을 정확히 나누는것이 좋다.
Interface
- Class의 규격, Object 간 소통할 때 쓰는 규약
- 이 인터페이스를 통해 구현해야하는 클래스가 있을 때
- 재정의할 수 있다. (let처럼)
Type
- 데이터의 타입 정의
- 구현할 목적이 아니라 데이터를 담을 목적으로 사용
- 재정의 할 수 없다. (const처럼)
- type alias를 통해 원시타입, 배열, 유니온 타입 등을 별칭화 할 수 있다.