"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 로 바꿔준다. (변경하면 에러남)
'typescript' 카테고리의 다른 글
HTML Dom narrowing (0) | 2022.06.10 |
---|---|
함수, 메서드에 타입달기 (0) | 2022.06.10 |
type 키워드 파헤치기 (0) | 2022.06.10 |
union 타입 확정 - type narrowing, assertion (as) (0) | 2022.06.10 |
union type, any, unknown - 타입 나중에 정하기 (0) | 2022.06.08 |
댓글