본문 바로가기
programming language/TypeScript

타입 추론과 타입 단언

by cariño 2024. 8. 15.
728x90
반응형

타입스크립트가 타입을 추론해 나아가는 과정은 변수를 선언하거나 초기화 할때 이외에도 변수, 속성, 인자의 기본 값, 함수 반환 값등을 설정할 때 타입 추론이 일어난다.

 

보통은 몇개의 표현식을 바탕으로 추론하는데 가장 근접한 타입을  Best Common Type 이라고 한다.

그리고 타입을 추론하는 다른 방법으로는 바로 문맥상으로 타입을 결정하는 것이있다. 

 

자세한 내용

https://joshua1988.github.io/ts/guide/type-inference.html#%EB%AC%B8%EB%A7%A5%EC%83%81%EC%9D%98-%ED%83%80%EC%9D%B4%ED%95%91-contextual-typing

 

타입 추론 | 타입스크립트 핸드북

타입 추론(Type Inference) 타입 추론이란 타입스크립트가 코드를 해석해 나가는 동작을 의미합니다. 타입 추론의 기본 타입스크립트가 타입 추론을 해나가는 과정은 다음과 같습니다. 위와 같이 x

joshua1988.github.io

 

 

 

타입 단언은 기본적으로 as 키워드를 사용해서 정의한다. 

선언된 값의 타입을 추론할 수 있는데 

타입 단언이 사용되는 이유? 컴파일러보다 개발자가 타입에 대해 더 잘알고 있을 경우 혹은 자바스크립트 기반 코드에 점진적으로 타입스크립트를 적용할 때 자주 사용된다. 

 

var div = document.querySelector('div') //var div: HTMLDivElement | null

// div 값은 null일수 있기에 보장을 한번 해줘야 한다. 
if(div){
  div?.innerHTML()
}

 

div?.innerHTML()

 

선언된 div라는 태그는HTMLElement 의 타입을 추론할 수 있는데 변수가 정의되는 시점에서 타입이 null일 수도 있기 때문에 div의 값을 한번 더 보장해주게 된다. 

 

var div = document.querySelector('div') as HTMLDivElement

 

이런 경우에 타입 단언인 as 키워드를 사용하면 null이 아닌 값을 보장할 수 있게 된다. 

무조건 div라는 엘리먼트가 있을 것이다. 라는 것을 단언해주게 된다. 

728x90

댓글