union type
let newName: string | number = 'chris';
"이 변수의 타입엔 string 이나 number 타입이 들어올수 있습니다" 라는 뜻
할당하는 순간 그 자료형에 맞는 타입으로 변한다.
any type
어떤 자료라도 다 넣을수 있다.
any 타입은 버그를 발생 시킬 위험이 많고, 발생한 에러를 추적하기가 힘들게 만들기때문에 가급적이면 쓰지않는것이 좋다.
any 타입 쓰면 타입스크립트를 쓰는 이유가 없음.
unknown type
unknown type 도 any type 처럼 아무 자료형이나 다 넣을수 있지만 어떤 타입이 들어오는지 명확히 모를 경우에는
any type 보다는 unknown type 을 쓰는게 그나마 나은데 그 이유는
any type 은 any type 인 변수에 넣을때도, 특정 타입이 필요한 곳에 any type 변수를 넣을때도 에러를 띄우지 않지만
unknown type 은 unknown type 인 변수에 값을 넣을때는 에러를 띄우지 않지만 명확한 타입이 필요한 곳에 unknown type 인 변수를 넣으면 에러를 띄워주기 때문이다.


추가
union type 사용시 주의 점
아래 코드를 보면

age 변수가 union type 으로 string 혹은 number 타입이 될수 있는데
age 의 값이 'chris' 이면 string type 이니까 'chris1' 이 될테고,
age 의 값이 1 이면 number type 이니까 2 가 될텐데
왜 에러가 뜨나요 ?
왜냐면 age 의 타입은 string type 혹은 number type 이 아닌 string | number type 이기 때문입니다.
+ 연산자는 string type 이나 number type 에 쓸수 있는 연산자지 string | number type 에 쓸 수 있는 연산자가 아닙니다.
'typescript' 카테고리의 다른 글
함수, 메서드에 타입달기 (0) | 2022.06.10 |
---|---|
as const 문법 (0) | 2022.06.10 |
type 키워드 파헤치기 (0) | 2022.06.10 |
union 타입 확정 - type narrowing, assertion (as) (0) | 2022.06.10 |
tsconfig.json - typescript 컴파일 세부 설정 (0) | 2022.06.08 |
댓글