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; // 오류!
- 엄격한 상수 관리
- 함수 매개변수 제한
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 |