[TypeScript] Literal Type과 as const이해하기

BE/TypeScript 2023. 6. 5.

 

 

 

Literal Type: 특정 값 자체가 타입이 되는 것이다.

 

문자열 값 자체를 타입으로, 숫자 값 자체를 타입으로, true 혹은 false를 가진 불린 값 자체를 타입으로 가지게 할 수 있다.

 

Union Type으로도 지정 가능   | UnionType이란?

type Pet = "cat" | "dog";  // Literal Type으로 지정함

let myPet: Pet;

myPet = "cat"; // OK
myPet = "dog"; // OK
myPet = "bird"; // 오류! "bird"는 Pet 타입에 없습니다.

 

 

as const

 

as const를 객체나 배열 뒤에 붙여주면 프로퍼티의 값이나 요소의 값을 변경할 수 없다.

let obj = {
  name: "John",
  age: 30
} as const;

obj.age = 31; // 오류! obj는 상수로 지정되어 있어서 값 변경이 불가능합니다.

let arr = [1, 2, 3] as const;

arr[0] = 2; // 오류! arr는 상수로 지정되어 있어서 값 변경이 불가능합니다.