-
Literal TypesTypescript 2022. 6. 16. 16:16
let 이름 :string;
이렇게 이름이란 변수에는 문자를 넣으세요 가 아니라 더 엄격한 타입지정을 할 수 있다.
let 이름 :'Kim' | 'Lee'
이렇게 쓰면, 이름이란 변수엔 Kim과 Lee만 들어갈 수 있다.
이렇게 리터럴타입을 쓰면, 변수에 뭐가 들어올지 엄격하게 관리가 가능하고 자동완성기능이 생긴다.
리터럴타입을 알면 const변수를 좀 더 확장성있게 할 수 있다.
let 나 :'이름 | 나이'; const 변수 = '이름';
이런 식으로, 자료를 여러개 저장할 수 있다.
하지만, 문제점이 있다.
var 자료 = { name : 'kim' } function 내함수(a : 'kim') { } 내함수(자료.name)
자료.name을 하면 'Kim'이 나오지만 에러가 난다.
이유는 literal 타입은 Kim이라는 자료만 들어올 수 있습니다~! 가 아니라
Kim이라는 타입만 들어올 수 있습니다. 라는 것이다.
즉, 자료.name은 string타입이지, kim타입이 아니기 때문이다.
이런걸 해결하려면
1. object 만들 때 타입지정을 확실히 하던가,
2. as 문법으로 타입을 구라치면 된다.
자료.name as 'kim'
3. 또한
var 자료 = { name : 'kim' } as const
이렇게 as const를 붙이면 된다.
as const를 쓰면, literal type지정을 알아서 해주세요 라는 뜻이다.
그러면, object value값을 그대로 타입으로 지정해준다. name : 'Kim'이렇게 된다.
그리고 object의 속성들에 모두 readonly를 붙여준다.
'Typescript' 카테고리의 다른 글
Html변경과 조작 시 주의점 (0) 2022.06.17 함수와 methods에 type alias지정 (0) 2022.06.16 type을 변수에 담기 & readonly (0) 2022.06.16 타입 확정하는 narrowing & assertion (0) 2022.06.16 함수에 타입 지정 & void타입 (0) 2022.06.16