Skip to main content

타입을 미리 정하기 애매할 때

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

  1. unknown 타입엔 모든 자료형을 다 넣을 수 있다.
  2. 자료를 입력해도 타입은 그대로 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