-
[Type Script] Narrowing, AssertionType Script 2023. 10. 3. 10:33
타입스크립트에서 타입의 범위를 좁혀서
코드가 좀 더 정확하게 동작할 수 있도록 만드는 거를
Narrowing이라고 합니다.
| Narrowing
예를 들어 타입스크립트에서는 아래와 같은 함수는 에러가 발생하게 돼있습니다.
function 함수(x :string | number){ return x + 1; }
이 함수에서 x가 타입이 하나로 정해진 것이 아니고 string | number라는 union타입이라 그럽니다.
이럴 때 타입을 하나로 narrowing 해주면 에러를 해결할 수 있습니다.
간단하게 조건문을 활용하여 narrowing 해줄 수 있습니다.
function 함수(){ if(typeof x === 'number'){ return x + 1; // x가 number타입일경우 } else if(typeof x === 'string'){ return x + 1; // x가 string타입일경우 } else { return 0; } }
typeof 키워드와 반복문을 통해 이런 식으로 범위를 좁혀줄 수 있습니다.
| Assertion
assertion은 타입을 하나의 타입이라고 주장해 주는 키워드입니다.
function 함수(x :number | string){ return (x as number) + 1; }
이런 식으로 x가 number 타입이라고 단언을 해줘서 에러를 없애줄 수 있습니다.
'Type Script' 카테고리의 다른 글
[Type Script] 함수에 타입 지정, 오버로딩(Overloading) (0) 2023.09.27 [Type Script] 기본적인 타입 지정 (0) 2023.08.30