let 이름: string | number = 'kim';
let 나이: (string | number) = 100;
let 어레이: (number | string)[] = [1,'2',3]
let 오브젝트: {data : (number | string) } = { data : '123' }
"이 변수엔 string 또는 number가 들어올 수 있습니다~" 라고 타입정의를 하고싶으면 | 연산자를 쓴다. (Union type)
let 이름: any = 'kim';
이름 = 123;
이름 = undefined;
이름 = [];
쉴드 해제 -> 자바스크립트 처럼 dynamic 해짐
비상시 쓰는 변수 타입체크 해제기능 용도로 사용
let 이름: unknown = 'kim';
이름 = 123;
이름 = undefined;
이름 = [];
중요한 특징은
unknown 타입엔 모든 자료 다 집어넣을 수 있음
자료집어넣어도 타입은 그대로 unknown이다.
let 이름: unknown;
let 변수1: string = 이름;
let 변수2: boolean = 이름;
let 변수3: number = 이름;
에러 발생 (any는 안그런다)
근데 실은 코드짜다가 any, unknown 부여할 경우는 별로 없다.