ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Type Script] Narrowing, Assertion
    Type 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 타입이라고 단언을 해줘서 에러를 없애줄 수 있습니다.

Designed by Tistory.