본문 바로가기
  • Junior developer :)
TypeScript

Type Script_06 타입 추론 & 단언 (Inference & Assertion)

by ram_Hi 2021. 4. 16.

항상 타입 보장하기!   타입은 명확하게!     타입은 엄격하게!     관리하기! 


 

1. Inference Type (타입 추론)

  타입을 우리가 명확하게 계속 명시해야 되는 경우보다는 알아서 자동으로 타입이 결정되는 경우가 있다.

  그럴 때 선언함과 동시에 타입이 너무 뻔한 경우 생략 가능! (TS는 너무 똑똑해✨)

function add(x: number, y: number): number {
  return x + y;
}
// 인자를 숫자로 받아와서 더한 값을 리턴하는 함수이기 때문에 결과값의 타입도 number로 추론함

const result = add(1, 2); 
// add함수는 number 타입임을 알고 있기 때문에 result: number 로 인식함

간단한 예제일 경우 추론이 간단하지만, 타입을 정확하게 정하는 것이 좋다. -> TypeScript를 사용하는 이유!! 

 


2. Type Assertion (타입 단언)

 -  ' as '  ' <> ' 을 사용하고 타입이 200% 확실할 때 쓴다.

  function sendDM(): any {
    return 'HelloWorld';
  }
  const result = sendDM();
  console.log((result as string).length); // .length 라는 api를 사용하기 위해 Type Assertion
  console.log((<string>result).length);

    주로 자바스크립트와 연동하여 api를 사용하고자 할 때에 타입 단언을 쓴답니다.

    but... 많이 사용하면 좋진 않겠죠? 200% 확실하다가 펑..!?🤯

 

 

 -  ' ! ' 를 사용해요. Optional Parameter( ' ? ' )와는 반대

  무조건 타입이 null이 아닐경우, 절대적으로 값이 있을 경우에 사용 : 변수명! / 함수명()!

  * DOM 구조에 접근할 때 정말 100% 있을 경우에만 사용해서 지원되는 api를 사용할 수 있다.   

 const button = document.querySelector('class')! as HTMLButtonElement;
 // 타입단언함으로 HTMLButtonElement에 지원되는 api 사용가능

 

 

 

댓글