article thumbnail image
Published 2022. 8. 2. 00:46

 

 

이번에는 타입 알리아스로 타이핑한 코드들을 인터페이스 타입으로 바꿔보도록하자.

 

기본적인 변형은 

type 을 interface로 바꿔주면 되고, =(이퀄)이 있으냐 없느냐의 차이이다.

타입 알리아스는 객체 유형을 대입하듯이 = 을 사용했지만

인터페이스는 =를 사용하지않는다. 바로 {} (브레이스)를 열고 닫고 코드를 적으면 된다.

 

📌타입 알리아스

 

 

📌인터페이스

 

이렇게 간단히 type을 interface로 바꿔주면 되는데..... 수많은 에러표시들..?

인터페이스에서는 타입 2개를 합치거나 즉, 유니온 타입을 만들거나 인터섹션(&를 사용한)

타입을 만드는것을 지원하지않는다.

 

그럼 어떻게 타입을 결합시킬 수 있을까?

NewsFeed 인터페이스에서 News를 인터섹션을 하고 있는데 이걸 

extends 라는 키워드를 사용해주면 된다.

News를 확장(extends)해서 새로운 타입을 만들어주는 것이다.

 

 

인터페이스같은 경우,

"News라는 것을 확장해서 NewsFeed를 만든다." 라고 해석할 수 있듯이.

앰퍼센트로 & 붙이는 느낌보다는 보다 더 명확하고 명시적으로 할 수 있다라는 느낌을 갖게 해준다.

 

그렇지만 인터페이스는, 

타입 알리아스가 제공하는 파이프 문자(|), 앰퍼센트(&)로 표현되는 인터섹션처럼 교차타입이라 말하는 유니온타입,

or, 이런 유형의 타입은 인터페이스로는 지원이 안된다.

 

그래서

만약 유니온 타입으로 타입을 표현해야하는 상황이라면? 타입 알리아스를 사용하면 되고,
그 외에는 인터페이스를 사용하는것이 코드를 읽는다는 측면에서 더 가독성이 좋다고 생각된다.

'개발이야기 > TS' 카테고리의 다른 글

[TS] 타입 가드  (0) 2022.07.25
[TS] 타입 추론  (0) 2022.07.25
[TS] 타입스크립트 환경설정  (0) 2022.07.22
[TS] 타입스크립트  (0) 2022.07.20
복사했습니다!