[TypeScript]타입 이어서...

Kyungoh Kang·2021년 1월 11일
0

typescript

목록 보기
2/2

typescript types

  1. 타입 추론 (inference): 타입이 명시적으로 선언되지 않은 경우, 타입스크립트가 추론하여 제공한다.
	let num = 10;
	num = "string"; //타입스크립트가 num은 number타입이라고 추론하기 때문에 스트링 할당하려면 에러남.
추론하는 경우: 초기화된 변수, 기본값이 있는 매개변수, 반환 값이 있는 함수.
  1. 타입 단언 (Assertions): 타입을 단언하여 타입 추론을 못하게 함.
  function someFunc(val: string | number, isNumber: boolean) {
    if (isNumber) {
      val.toFixed(2); 
    }
  }//val의 타입이 string일지 number일지 모르기 때문에 toFixed를 쓸 수 없어 에러가 난다.



  function someFunc(val: string | number, isNumber: boolean) {
    // some logics
    if (isNumber) {
      (val as number).toFixed(2);
       // 1. 변수 as 타입
      // Or
      // 2. <타입>변수
      // (<number>val).toFixed(2);
    }
  }

cf) x!.toFixed(2) -> x가 null이나 undefined가 아닐때 tofixed

  1. 타입 가드 (guard): 단언을 여러번 해야 하는 경우 is로 특정 scope내에서 변수의 타입을 지정할 수 있음.
function test (a: string | number): a is number {}
//test함수가 a를 number타입으로 지정

typeof val === 'number'; // val의 타입을 number로 직접 지정
if('toFixed' in val) //tofixed가 val에 쓰일때 val은 number

출처: https://heropy.blog/2020/01/27/typescript/

0개의 댓글