ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 타입을 미리정하기 애매할때 (any,unknown,union)
    Typescript 2022. 6. 16. 11:24

    만약, 다양한 타입이 들어올 수 있게 하려면 Union type이라해서

    let 이름 :(string | number) = 123;

    이렇게 할 수 있으며,

    응용해보면 object와 array도 가능하다.

    var 어레이: (number | string)[] = [1,'2',3]
    var 오브젝트: {data : (number | string) } = { data : '123' }

    위처럼 괄호로 묶어서 하면 문자,숫자 둘 다 가능하게 사용가능하다.

     

    또한 any타입이 있다.

    let 이름 :any;
    이름 = 123;
    이름 = ㅅㄱ;

    이렇게 쓰면, 모든 자료형을 허용해준다.

    any타입은 약간 타입실드를 해제하는 문법이라고 보면 된다.

    그리고 unknown이란 타입이 있다.

    let 이름 :unknown;
    이름 = 123;

    이렇게 any와 같지만 unknown이 더 안전하다.

    이유는

    let 이름 :unknown;
    이름 = 123;
    이름 = {};
    
    let 변수1 :string = 이름;

    현재 이름이 {}오브젝트이므로 변수1에 들어가는걸 막아주는데, any는 실드해제라 변수1에 들어가게 된다.

    그리고 타입스크립트는 간단한 수학연산도 타입이 맞아야해서

    let 이름 :unknown;
    이름 - 1

    이렇게 unknown은 -같은 연산을 못하게 한다.

    여기서 타입스크립튼 엄격하기에 연산을 할 때

    string타입엔 +1가능

    number타입엔 +1가능

    하지만, string | number에는 +1이 불가능하다. 즉 union에는 불가능하다.

     

     

    'Typescript' 카테고리의 다른 글

    type을 변수에 담기 & readonly  (0) 2022.06.16
    타입 확정하는 narrowing & assertion  (0) 2022.06.16
    함수에 타입 지정 & void타입  (0) 2022.06.16
    기본 타입정리  (0) 2022.06.16
    Typescript란?  (0) 2022.06.16

    댓글

Designed by Tistory.