본문 바로가기
👩‍💻 Programming/TypeScript

[TypeScript] 인터페이스(Interfaces) VS 타입(Type)

by codingBear 2022. 8. 16.
728x90
반응형

 이번 글은 'Learning TypeScript'의 Chapter 7. Interfaces 내 'Type Aliases Versus Interfaces' 단락의 내용을 요약한 것입니다.


들어가며

  타입스크립트에는 객체 형태를 나타내기 위한 방법인 타입 별칭(type aliases) 및 많은 개발자들이 선호하는 인터페이스(Interfaces)도 존재한다. 인터페이스 역시 객체 형태를 선언하기 위한 방법이다. 이는 타입 별칭과 매우 유사하나 에러 메시지가 비교적 정확히 출력되고, 컴파일러 성능이 뛰어나며 클래스와의 상호 운용성이 보다 뛰어나기 때문에 개발자들이 더 선호한다.

 

 

 두 표현법은 거의 같아 보인다. 하지만 둘 사이에는 몇 가지 차이점이 있다.

 

차이점

  • 인터페이스는 병합(merge)되어 확대될 수 있다. 이러한 특징은 특히 전역 혹은 npm 패키지와 같은 서드 파티 코드를 활용하여 작업할 때 유용하다.
  • 인터페이스는 클래스 정의 구조의 타입을 확인하는데 쓰인다. 타입 별칭으로는 이러한 작업이 불가능하다.
  • 타입스크립트 타입 체커가 작동할 때 일반적으로 인터페이스가 더 빠르다. 타입 별칭이 수행하는 방식으로 새 개체 리터럴을 동적으로 복사하여 붙여넣는 대신 내부적으로 더 쉽게 캐시할 수 있는 명명된 유형을 선언한다.
  • 인터페이스는 명명되지 않은 객체 리터럴의 별칭이 아니라 명명된 객체로 간주되기 때문에 오류 메시지가 복잡한 경우에도 더 읽기 쉽다.

 

 뒤 두 개의 이유 덕분에 인터페이스를 사용할 경우 일관성을 유지(maintain consistency)할 수 있다.

728x90
반응형

댓글