Type Assertions

zerozoo-front·2021년 6월 23일
0

typeScript

목록 보기
13/65

TOC

  1. Type Assertions = 타입 선언

  2. DOM Asserstion

  3. 더 정밀한 선언으로만 적용되는 Type Assertion


js를 제외한 많은 type을 가진 언어들은 type을 개발자 임의대로 변경하는 기능을 가지고 있다.

예를 들어 c에서 int 타입을 => float으로 변경하는것은 가능하다.
2를 2.0이라고 적어주는게 뭐가 불만이겠는가.

반대로 2.5인 float을 2로 변경하는 것은 경고창이 뜨지만 개발자에게 전권을 위임한 c는 이를
경고창만 띄워주고 과감히 실행해준다.

ts의 경우는 어떤지 보자.


2. DOM Asserstion

  1. 타입 선언하기
const myCanvas=document.getElementById('main_canvas') as HTMLCanvasElement;
const myCanvas = <HTMLCanvasElement>document.getElementById("main_canvas"); // 위와 같음

우선 DOM 객체도 ts에선 type을 가지는데,
위 코드에선 myCanvas는 HTMLCanvasElement라는 타입을 가진 것이다.

DOM에 접근하고 이를 가져오는데 ts는 어떤 node가 떨어질지 모르는 상황에서 기다린다.
그냥 HTMLElement가 들어오는 것 그 자체만 알고 있기 때문에 명시적으로
무슨 타입인지를 정해주어야 하는 것이다.


3. 더 정밀한 선언으로만 적용되는 Type Assertion

const x = 'hello' as number;
// error

const any:any=123;
console.log(typeof any) // number 
any as number;
console.log(typeof any) // number

마땅한 예시가 떠오르질 않는다 tsc는 추론을 통해 any라고 지정한 타입도 number로 바꾸어버린 것 같다.

profile
이 블로그의 글은 제 생각을 정리한 글과 인터넷 어딘가에서 배운 것을 정리한 글입니다. 출처는 되도록 남기도록 하겠습니다. 수정 및 건의 오류 등이 있으면 언제든지 댓글 부탁드립니다.

0개의 댓글