변수에 타입을 미리 정하기 힘들 때 사용할 수 있는 방법이 몇가지가 있다.
가장 많이 사용하는 타입이다.
or 연산자처럼 | 기호를 사용한다.
사용하는 방법은
let 이름:string | number = 'Go';
이런 식으로 사용한다.
어떤식으로 작동을 하냐
- 이름이라는 변수는 string or number 타입이다.
- 'Go' 라는 값을 할당해 주었다.
- 그럼 이름이라는 변수는 string으로 고정이 된다.
Array나 Object 자료에도 union type을 쓸 수 있다.
let 어레이: (number | string)[] = [1,'2',3]
let 오브젝트: {data: (number | string) } = {data:'123'}
이렇게 해주면 된다.
let 이름: any = 'kim';
이름 = 123;
이름 = undefined;
이름 = [];
위처럼 any 타입은 실드 해체 문법이라서 뭐든 들어갈 수 있다. 하지만,,, 저렇게 쓰면 타입스크립트를 쓰는 이유가 없어지기 떄문에 굳이 쓸 필요는 없다.
let 이름: unknown = 'kim';
이름 = 123;
이름 = undefined;
이름 = [];
비슷해 보이지만
let 이름: unknown;
let 변수1: string = 이름;
let 변수2: boolean = 이름;
let 변수3: number = 이름;
unknown 타입을 다른 곳에 집어넣으려고 하면 그쪽 타입 실드에 에러가 뜬다. 하지만 any타입은 에러가 없다.