*narrowing은 모호한 타입(union type)을 가지고 있을 때, 추가적인 타입 체크를 이용해 타입을 작은 범위로 좁혀주는 것을 뜻한다 function sum(x :number | string) { if(typeof x === 'string') { return x + '1' } else { return x + 1 } } sum(123) narrowing 할 때 주로 typeof를 사용하는데, 이것으로 부족할 경우가 생기게 된다 1. && 연산자 사용 undefined 또는 null 타입 체크 시 typeof를 사용하면 코드가 길어지는데, function func(x: string | undefined) { if(typeof x === 'string') { } else { } } && 연산자를 사..