ABOUT ME

Today
Yesterday
Total
  • any, unknown 타입과 타스의 엄격함.
    typescript 2022. 1. 17. 18:39

    1)

    일단 두 타입은 모두 어떤 자료형이 할당될지 모를 때 임의로 사용하는 타입이다.

     

    unknown 타입과 any 타입은 모두 모든 자료형을 담을 수 있다.

     

    하지만 any로 선언된 변수는 다른 자료형 타입을 가진 모든 변수에 할당되어질 수 있지만, 

     

    unknown은 그럴 수 없다.

     

    왜냐면 unknown은 어떤 자료형이 할당되든, 그 자체의 타입은 계속 unknown이기때문이다.

     

    즉, any는 타입 실드를 무효화하지만 unknown은 모든 타입에대한 할당을 허용하되,

     

    계속 unknown타입을 유지해 다른 타입 변수으로의 할당을 방지할 수 있다.

     

    조금 더 까다롭기때문에 any보다 버그를 방지하기쉽다.

     

    따라서 어떤 자료형이 할당될지 몰라 꼭 타입 미지정이라고 해줘야될 때

     

    unknown이 any보다 좀 더 많이 쓰이는 자료형이다.

     

     

     

    2)

    타스는 매우 엄격하기때문에,

     

    이런 계산이나

    이런걸 할 때 꼭 자료 타입이 number로 확정된 상황에서 저런 연산 코드를 작성해야한다.

     

    첫 번째는 unknown 타입이고 두 번째는 union 타입이기에,

     

    연산이 불가능하다.

     

     

    다만 아래처럼 값 할당을 해주면

    union 타입에서 할당된 변수 타입으로 타입의 최종 확정이 되기때문에,

     

    에러가 나지않는다.

     

    위 사진은 그래서 원래 union 타입이었지만,

     

    '11' 이라는 string을 할당해줌으로써 union 타입에서 string 타입으로 타입이 변화된것이다.

     

    'typescript' 카테고리의 다른 글

    함수와 메소드에 type alias 붙이기.  (0) 2022.01.17
    literal types로 타입 지정해보자.  (0) 2022.01.17
    type alias란.  (0) 2022.01.17
    narrowing과 assertion이란.  (0) 2022.01.17
    typescript의 함수에 대하여.  (0) 2022.01.17
Designed by Tistory.