728x90

https://codingapple.com/course/typescript-crash-course/

 

빠르게 마스터하는 타입스크립트 - 코딩애플 온라인 강좌

  누구나 마음 한켠엔 나만의 웹서비스를 만들고 싶어합니다. 프론트엔드는 어찌저찌 하겠는데 서버 만드는게 어렵고 귀찮다고요? 그렇다면 Firebase를 쓰십시오.   구글이 웹서버를 대신 만들어

codingapple.com

본 블로그는 해당 타입스크립트 강의(코딩애플) 수강 후, 작성된 게시물입니다.


정확한 타입을 지정하기 애매할때
[1] union type : 타입 2개이상 합친 새로운 타입
[2] any : 모든 자료형 허용(타입실드 해제 문법)
[3] unknown : 모든 자료형 허용(any보다 안전)

 

union type

변수

타입에 괄호를 지정해도 상관없다.
여기서 '회원'은 123으로 데이터를 넣었기 떄문에, 타입이 확정이 되어 number라는 타입을 가졌다고 표시한다.
하지만, string을 재할당하면, 다음과 같이 string 또는 number를 가지는 타입으로 표시를 한다는 것을 알 수 있다.

배열, 오브젝트

array와 object 또한 union type을 할 수 있다. 여기서 array는 괄호를 꼭 적어주어야 한다.
참고로, array에 타입 지정 시 괄호를 적어주지 않는다면, 변수 타입과 배열 타입으로 분리되어 타입이 지정되는 것을 확인할 수 있다.

 


any type

여러 타입을 허용하는 모습

 

여러 타입을 허용하지만, 여전히 any 타입을 유지한다.

타입스크립트의 기능을 사용하고 싶지 않는 변수에 할당 → 대신, 타입 관련 버그는 잡아주지 않는다.

any type을 남발하면, 타입스크립트를 사용하는 의미가 없음

 


unknow type

unknown type 또한 모든 자료형을 허용하지만, 다른 변수에 할당 시 타입실드가 작동하는 모습을 볼 수 있다. 여기서 string 타입을 넣었어도 여전히 unknown 타입을 유지하는 모습을 확인할 수 있다.
하지만, any type은 다른 변수에 적용될 때, 타입 실드가 해제된 채로 적용이 되는 모습을 볼 수 있다.

중요 ★

타입스크립트는 엄격하기 때문에 정확한 타입끼리의 연산만 허용해준다.

타입스크립트의 엄격함에 따라 간단한 수학연산도 타입이 맞아야지 해준다.
마찬가지로 1이라는 number 타입을 할당하지만, 타입스크립트는 엄격하기 때문에 unknown 타입을 연산하는 것을 허용하지 않는다는 것을 알 수 있다.

타입스크립트는 엄격하기 때문에 union type에서도 연산을 허용하지 않는다.

728x90

+ Recent posts