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
을 사용하면 타입검사를 진행하는 블록에대한 매개변수를 확정함으로써 자료형에 맞는 프로퍼티 , 연산을 수행할수있다.
타입스크립트의 자료형 캐스팅 방법이다. as
를 사용하며 기존 자료형은 변하지않는다. 임시적인 방편으로 사용한다.
변수명 as type 으로 사용한다.
function test(value:string|number){
let counter =value
return () => (counter as number)+1;
}
임시적인 타입실드 해제 , 테스트시 유용하게 사용할수있음. narrowing은 타입마다 방법을 정하는거라면 assertion은 변수를 타입에 맞추는 방법