본문 바로가기
TECH

as const

by Stella-Park 2025. 5. 27.
728x90

as const는 Typescript에서 타입을 명시 (type assertion)해주는 키워드 중 하나이다. 리터럴 타입을 명시적으로 알려준다.

 

리터럴 타입이란?

Typescript에서 값 자체를 타입으로 사용하겠다라는 의미를 나타낸다.

let x = "hello";

x는 기본적으로 string 타입으로 추론되는데 string 타입인 "world"나 "fruits"등이 다 가능하다. 그러나, "hello"만 가능하게 하고 싶을 때가 있는데 이럴 때 사용하는 것이 리터럴 타입이다.

let x: "hello";
x = "hello";   // OK
x = "world";   // 오류!

 

number, boolean 타입도 가능하다.

let y: 30;
y = 30; // OK
y = 40 // 오류!

let flag: true;
flag = true; // OK
flag = false; // 오류!

 

  1. 엄격한 상수 관리
  2. 함수 매개변수 제한

function stockAccount (type: 'cma', 'retirement', 'isa', 'none') {
  console.log('type: ', type);
}

stockAccount('cma'); // OK
stockAccount('move') // 오류!

이런 경우에 리터럴 타입을 사용한다.
그럼 다시 본론으로 들어와서 🔙

as const의 역할과 의미

  • 값은 변경 불가능하며, 있는 그대로 리터럴 타입으로 알거라
const arr = [1, 2, 3] as const;
=> readonly [1, 2, 3]으로 추론

const obj = { x: 10, y: 20 } as const;
=> readonly {x: 10, y: 20}으로 추론

 

as const를 사용하는 이유

  • as const는 값을 리터럴 타입으로 고정하고 readonly로 만들어 수정 불가
  • 타입 안정성과 의도한 타입 보장에 유용
  • 배열, 객체, 상수 등을 더 안전하게 사용할 수 있게 도와줌
728x90

'TECH' 카테고리의 다른 글

canvas  (4) 2025.05.31
CSS에서 사용되는 단위들  (0) 2025.05.28
setHTMLUnsafe  (2) 2025.05.26
content-visibility 속성  (2) 2025.05.22
ZonedDateTime  (6) 2025.05.19