-
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