본문 바로가기
typescript

as const 문법

by 왜 안되지 2022. 6. 10.

"kim" 이라는 리터럴 타입만 파라미터로 들어올 수 있는 함수를 만들었습니다.

object 의 프로퍼티를 넣고싶습니다.

근데 타입스크립트가 에러를 냅니다.

왜냐면 함수는 파라미터 a 에 "kim" 타입을 입력할수 있다고 해놨는데 

varObject.name 은 string 타입이지 "kim" 타입이 아니기 때문입니다.

 

이걸 해결하려면 

1. object 만들때 타입을 미리 잘 정한다.

2. type assertion 을 쓴다. ( as "kim")

3. as const 를 객체에 붙인다.

 

객체에 as const 붙이면 에러 없어짐.

as const 는 효과가 2개인데,

1. 타입을 object 의 value 로 바꿔준다. (name 의 타입을 "kim" 으로 바꿔준다.)

2. object 안에 있는 모든 속성을 readonly 로 바꿔준다. (변경하면 에러남)

 

 

 

댓글