Narrowing
타입은 여러 종류를 함께 선언할 수 있다.
이것을 if문 등으로 타입별로 분기처리를 한다면 타입가드(type guard)라는 특수한 형식의 코드로 인식된다.
배열은 객체(object) 타입이다. 그러나 null 또한 객체(object) 타입이므로 오류가 발생할 수 있음에 주의해야 한다.
이 경우 값이 존재하는지를 &&를 추가하여 확인하면 의도대로 사용할 수 있다.
animals 내에 어떤 항목이 있는지 확인하기 위해 in을 사용할 수 있다.
instanceof로 타입 좁히기도 가능하다. 내부에 있는 인스턴스 종류에 따라 나뉜다.
조건에 따라 서로 다른 값을 참조해야 할 때 ?로 optional하게 값을 만들고, !로 값이 존재한다는 조건을 달게 되면 올바르게 사용된 것이라고 볼 수 없다. !는 값이 항상 존재한다는 것을 말하며, 잘못된 값을 참조하게 될 수 있기 때문이다.
이 경우에는 oprional하게 값을 만들지 말고 interface를 분리하여 여러가지로 만든 뒤 필수적인 값만 들어갈 수 있게 if로 분기처리를 하는 것이 더 낫다.
'Typescript' 카테고리의 다른 글
[Typescript] 공식문서 공부중4 (0) | 2024.06.21 |
---|---|
[Typescript] 공식문서 공부중2 (0) | 2024.06.20 |
[Typescript] 공식문서 공부중1 (0) | 2024.06.18 |
[Typescript] 무한스크롤(Infinity scroll) (0) | 2024.06.18 |
[Typescript] 설치한 모듈의 타입 적용 (1) | 2024.06.05 |