타입을 미리 정하기 애매할 때
Union type
let name: string | number = "kim";
let age: string | number = 100;
let arrayName: (number | string)[] = [1, "2", 3];
let objectName: { data: number | string } = { data: "123" };
Any
let name: any = "kim";
name = 123;
name = undefined;
name = [];
Unknown
- unknown 타입엔 모든 자료형을 다 넣을 수 있다.
- 자료를 입력해도 타입은 그대로 unknown이다.
let name: unknown = "kim";
name = 123;
name = undefined;
name = [];
any와의 차이점은 다른 변수에 넣을 때 에러 발생 여부 -> unknown이 더 안정적
let name: unknown;
let var1: string = name; // error
let var2: boolean = name; // error
let var3: number = name; // error
name[0]; // error
name - 1; // error
name.data; // error
tip
unknown은 number 타입이 아니므로
let age: unknown = 1;
age + 1; // error