let player :number | string = 123;
// 위와 같이 숫자를 할당했다면 더 이상 유니온 타입이 아니라
// 타입이 number로 지정된다.
응용예제
let player :(number | string)[] = [1,'2',3];
// 배열은 꼭 괄호로 묶어줘야함.
let obj :{ a : string | number} = { a : 123};
let player :any // player라는 변수에는 아무 타입이나 할당할 수 있다
하지만 any를 너무 막 가져다 사용하면 타입스크립트를 사용하는 의미가 사라진다.
그래서 any는 타입으로 접근하기보단, '타입을 해제하는 문법'으로 접근해야한다.
❗중요❗
타입스크립트에선 연산을 할때도 타입을 엄격하게 지켜야한다.
<종종 발생하는 문제>
1. 유니온 타입 연산
let age :string | number;
age + 1;
왜 에러가 발생할까?
유니온 타입은 두 개의 타입을 합쳐서 '새로운 타입'을 만드는 것이다.
그래서 아래와 같은 두 타입은 가능하다.
let age :unknown = 1;
age - 1;
왜 에러가 발생할까?
age라는 변수의 타입이 number가 아니기 때문이다.