포스트

as Const?

궁금증의 동기!

타입스크립트 사용해서 프로젝트 하던중 아래와 같은 예제 코드를 발견 했다.

1
const INCREASE = "counter/INCREASE" as const;

as const 가 어떤 역할을 하는지 좀 처럼 감을 못잡았다. 바로 구글링

let 변수에서

1
2
3
4
5
6
7
let hihi = "abc";
hihi = "bbbb";
// hihi 는 string 타입임으로 정상적으로 변환이 된다

let hello = "world" as const;
hello = "hihi";
// hello 의 타입은 'world; 임으로 변환 못함

as const 의 역할은 그 자체를 하나의 타입으로 바꿔준다는 것을 알수 있다.

객체에서

1
2
3
4
5
6
7
8
9
10
11
const thisObj = {
  hello: "world" as const,
  foo: "bar"
};
// 객체의 타입중 hello 는 'world' 타입으로 변환

const thisObj1 = {
  hisName: "park",
  hisAge: 18
} as const;
// 객체 전체가 타입이 되고 readonly 로 변환

스크린샷 2022-07-14 오후 7 46 39 스크린샷 2022-07-14 오후 7 46 11

as const 의 결과

  1. 해당 값을 전부 하나의 타입으로 지정해준다.
  2. object 속성을 전부 readonly 시켜준다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.