티스토리 뷰
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 문법 사용!
'Coding > typescript' 카테고리의 다른 글
[typescript] HTML 변경, 조작할 때 narrowing (0) | 2023.07.19 |
---|---|
[typescript] 함수와 object에 type alias 지정하기 (0) | 2023.07.18 |
[typescript] 타입 변수에 담아쓰기, 변경 막을때 readonly (0) | 2023.07.17 |
[typescript] 함수에 타입 지정하는법, void 타입, Narrowing (0) | 2023.07.17 |
[typescript] typescript 설치, 필수문법 (0) | 2023.07.16 |