-
타입을 미리정하기 애매할때 (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