typeof 제대로 사용하기

Clare Lee·2021년 12월 15일
0

typeof를 사용할 때는 typeof의 대상이 변수이어야 제대로 작동한다.

다음과 같은 함수가 있다고 가정하자.

const numOrUndefined = (year: number): number | undefined => {
    if (number % 2) {
    	return number;
    } else {
    	return undefined;
    }
}

What not to do

if (typeof numOrDefined(2021) === "number") {
	// TypeScript Error, numOrDefined type is not set
	console.log(numOrDefined(2021) + 1);
}
else {
	console.log("Even year");
}

What to do

const yearResult = numOrDefined(2021);
if (typeof yearResult === "number") {
	console.log("Odd year");
}
else {![](https://velog.velcdn.com/images%2Fyoojeonglee%2Fpost%2Fce788743-993b-4e69-a8d1-b5230a1a4a95%2Fimage.png)
	console.log("Even year");
}

Why? 값을 변수에 담아놓지 않으면 타입이 정해져있지 않아서 앞서 검사를 했더라도 타입이 정해져있지 않기 때문

profile
2년차 임베디드 SW 개발자

0개의 댓글