기록하는 타입스크립트 - Narrowing & Assertion

FeelingXD·2022년 11월 11일
0
post-thumbnail

Narrowing

Narrowing : 좁히다.

함수가 작동할때 들어온 매개변수가 커스텀 자료형이거나 ,union 등 어떤 자료형이 들어오는지 확신할수 없다면 Narrowing으로 매개변수의 자료형에 따라 동작방식을 정의함으로써 안전한 코드를 작성할수있다.

// Narrowing

function(value:string|number|boolean){// string 혹은 number 를 매개변수로 받음
  
  if(typeof value == 'string'){ //Narrowing
   	// type이 string  일경우 .. example
    return console.log( value.length)
  }
  else if(typeof value == 'number'){ //Narrowing
   	 return console.log('value 는 number입니다.')
  }
}

Narrowing 을 사용하면 타입검사를 진행하는 블록에대한 매개변수를 확정함으로써 자료형에 맞는 프로퍼티 , 연산을 수행할수있다.


Assertion

타입스크립트의 자료형 캐스팅 방법이다. as 를 사용하며 기존 자료형은 변하지않는다. 임시적인 방편으로 사용한다.

변수명 as type 으로 사용한다.

function test(value:string|number){
 	let counter =value
    return () => (counter as number)+1;
}

임시적인 타입실드 해제 , 테스트시 유용하게 사용할수있음. narrowing은 타입마다 방법을 정하는거라면 assertion은 변수를 타입에 맞추는 방법

profile
tistory로 이사갑니다. :) https://feelingxd.tistory.com/

0개의 댓글