8/24 TIL 타입추론, as(Type Assertion)

2023. 8. 25. 02:09Dev/TIL WIL

공통의 컴포넌트에선 전달받는 Props의 타입이 두 가지였고 그 데이터가 다시 각기 다른 컴포넌트로 전달될 때 두 가지 타입 중 하나의 타입을 전달해야 했는데 type narrowing이 필요했다.

 

 

 

내가 지정한 interface의 타입이라 타입추론이 안됐다.

 

이때 type assertion을 이용해 보내는 데이터의 타입을 지정해 줬다.

 

 

type assertion은 개발자가 컴파일러에게 변수나 표현식의 타입을 명시적으로 알려주는 것을 말한다. 

 

각괄호 문법과 as키워드를 사용할 수 있지만  as키워드를 사용한 방식이 현대적이고 JSX와도 호완성이 좋아 권장되는 방법이다.

 

주의할 점은 type assertion을 남용하면 오히려 타입 안정성이 감소할 수 있다. 컴파일러가 올바른 타입을 추론하지 못하게 하거나, 불일치하는 type assertion을 사용하면 런타임 에러가 발생할 수 있다. 가능한 경우 타입 추론을 활용하고, 필요한 경우에만 사용하는 것이 좋다.

 

 

 

 

 

 

'Dev > TIL WIL' 카테고리의 다른 글

TIL 10/12 기술면접질문2  (0) 2023.10.13
TIL 10/11 기술면접질문  (1) 2023.10.12
TIL 8/23 tailwindCSS 동적 스타일링  (0) 2023.08.23
TIL 8/2 eslint autofix  (0) 2023.08.03
TIL 8/1 TypeScript Template Literal Types  (0) 2023.08.02