본문 바로가기

타입스크립트

타입 어서션「as」(type assertion )

728x90

타입스크립트에는 타입추론을 덮어쓰는 기능이있다. 이 기능을 타입어서션(type assertion)이라고 한다.

 

* 타입스크립트 컴파일러는 코드를 바탕으로 타입을 추론해준다. 그렇게 추론된 타입은 대부분 맞긴하지만, 상황에 따라서 

컴파일러보다 정확한 타입을 알아야 할 때가 있다. 이런 경우, 타입어서션을 통해 컴파일러에 타입을 전달해 줄 수 있다. 

타입어서션은 컴파일러에게 "내가 타입이 이거라는 걸 보장할 테니, 날 믿어줘!!!!!!!" 라고 하는 것과 같다.

 

사용방법

타입어서션을 사용하는 방법에는 두 가지가 있다. 첫 번째는 as를 사용한다.

다른 하나는 <> 을 사용하는 방법이다

 

컴파일에러가 되는 타입어서션

타입어서션을 사용하면 제한없이 타입을 덮어쓸수 있는가에 대해서는 그렇지는 않다. 예를들어 number형을 string형으로 하는 타입어서션은 컴파일 에러가 발생한다. 

이 에러는 number형을 string형으로 하는것은 잘못되었다, 서로 공통되는 부분이 너무 적다? 라는 내용이다.

이처럼 타입어서션은 컴파일러의 타입 추론을 덮어쓸수는 있지만, 무작정 형 변환을 할 수 는 없게 되어있다. 

그럼에도 자신이 쓴 타입어서션이 올바르다고 생각하는 경우에는 unknown타입을 경유해서 위와 같은 에러를 발생하지 않게 할 수는 있다. 

 

 

끝으로.

타입어서션은 컴파일러의 타입 추론을 덮어쓸 수 있는 매우 강력한 도구임에는 틀림없다. 그렇기 때문에 프로그래머는 타입 어서션에 따른 버그를 발생하지 않도록 주의해서 사용할 필요가 있다. 타입에 관해서는 가능하다면, 컴파일러의 타입 추론을 믿는게 안전하겠지만, 

어쩔수없이 사용해야 할 경우에만 사용하도록 하자.

 

 

참고

https://typescriptbook.jp/reference/values-types-variables/type-assertion-as

728x90

'타입스크립트' 카테고리의 다른 글

타입스크립트 기본(2) 함수편  (0) 2023.03.12
타입스크립트 기본(1)  (0) 2023.03.12