티스토리 뷰

반응형
Literal types

 

 

변수에 뭐가 들어올지 더 엄격하게 관리 가능

자동완성 힌트 있음

 

 

let 이름 : string;

위의 타입보다 더 엄격하게 타입 지정이 가능하다.

ex) kim이라는 문자만 들어올 수 있다~라고 지정 가능

 

 

let 이름 : "kim";

타입 넣을 자리에 원하는 문자 or 숫자 등을 넣으면 된다.

이름이라는 변수엔 kim 이라는 문자만 들어올 수 있음

 

 

function 함수( a : 'hello') : (1 | 0) {
	return 1;
}

위의 함수 실행시키려면

파라미터 값에 무조건 hello만 들어와야하고

return되는 값은 1 or 0 이다

 

 

 

 

Lieral type의 문제점

var 자료 = {
    name : 'kim'
}


function 내함수(a:"kim"){

}


내함수(자료.name)

위의 코드를 보면

내함수 파라미터에는 'kim'만 넣을 수 있고

자료.name 결과 값이 'kim'이므로 내함수 파라미터에 넣었는데 오류가 뜬다.

왜?

a:"kim" 뜻이 a에 "kim" 자료만 들어올 수 있습니다가 아닌 "kim"이라는 타입만 들어올 수 있습니다 라는 뜻이기 때문

 

 

 

해결방법

오브젝트를 만들때 맨뒤에 as const라는 키워드 작성하면 된다.

var 자료 = {
    name : 'kim'
} as const

function 내함수(a:"kim"){

}

내함수(자료.name)

 

 

 

as const의 역할

1. 오브젝트의 value 값을 (위에서 자료의 value 값은 kim) 타입으로 지정해줌

2. 오브젝트의 속성들에 모두 readonly를 붙여줌

 

 

 

요약

object 자료를 완전히 잠구고 싶으면 as const 문법 사용!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함