728x90
https://codingapple.com/course/typescript-crash-course/
본 블로그는 해당 타입스크립트 강의(코딩애플) 수강 후, 작성된 게시물입니다.
Literal Types
특정 글자나 숫자만 가질 수 있게 제한을 두는 타입
변수
let 나이 :24; // Literal type
나이 = 24;
나이 = 29; // error
let 오정환 :'대머리'|'솔로';
오정환 = '대머리';
오정환 = '풍성충' // error
함수
function 함수(a :'hello') :1|0 { // Literal type
return 0;
}
함수('hello');
function 확률(패 :'가위'|'바위'|'보') :('가위'|'바위'|'보')[] { // Literal type
return [패];
}
확률('가위');
"const를 사용하면 되지 않나요?"
▶ 1 값을 가진 변수를 지정하고 싶어요
const one = 1;
▶ 0 또는 1을 가진 변수를 지정하고 싶어요.
const bit = 1.....?? 0???
let bit :number; ??
▷ let bit :0|1; // 이런 경우에, literal type을 사용하면 유용
bit = 1;
bit = 0;
bit = 2; // error
var 자료 = {
name : 'kim'
}
function 내함수(a :'kim'){
// code
}
내함수(자료.name); // error
오류가 나는 이유?
함수의 파라미터 (a :'kim')의 의미는 kim이라는 자료만 들어올 수 있다는 의미가 아닌, kim이라는 타입만 들어올 수 있다는 의미이다.
해결 방법?
1. object에 타입 지정하기
2. as로 타입 변경하기
3. as const 사용하기
효과 1. 해당 object를 literal type으로 알아서 지정해준다. → 해당 데이터로 타입을 지정해준다.
효과 2. object 속성들에 모두 readonly를 붙여준다.
728x90
'IT > TypeScript' 카테고리의 다른 글
[TypeScript] Function Type Alias (0) | 2022.10.29 |
---|---|
[TypeScript] 타입 자료형 type & readonly (0) | 2022.09.23 |
[TypeScript] 타입스크립트 console.log 출력하는 방법 (0) | 2022.09.22 |
[TypeScript] 타입 확정 Narrowing & Assertion (0) | 2022.09.22 |
[TypeScript] 함수에 타입 지정 & void (0) | 2022.09.22 |