이번에는 타입 알리아스로 타이핑한 코드들을 인터페이스 타입으로 바꿔보도록하자.
기본적인 변형은
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 |