리터럴 타입
: 특정 값을 나타내는 타입으로 해당 값이 정확하게 일치해야한다.
: 문자열, 숫자, 불리언, 객체 .. 리터럴 타입이 있다.
let status = 'success' | 'error';
status = 'success'; // 유효
status='pending' // 에러:'pending' 은 허용되지 않음
리터럴 타입의 장점
: 코드의 가독성이 높아진다.
: 잘못된 값이 들어오는 것을 방지할 수 있다.
any 타입
: 타입 체크를 하지 않는다. 어떠한 타입이 오더라도 OK
: 일부러 사용하지는 말 것
: 타입을 지정할 수 없는 제한적인 경우에만 any 타입 사용하기
유니온 타입
: 제한된 타입을 동시에 지정하고 싶을 때
: | 기호를 사이에 두고 동시에 타입을 지정할 수 있다.
let anyVal: number | string;
➡️ anyVal 변수는 number 나 string 타입 중 아무 타입의 값이 올 수 있다.
➡️ 타입 가드(typeof 연산자) 를 사용하여 타입 검증을 수행하는 것이 필요하다.
배열
// 베열의 유니온 타입
let mixedArray:(number|string)[]=[1,'two',3,'four'];
for(let i=0; i<mixedArray.length;i++) {
console.log(mixedArray[i]);
}
튜플
let greeting : [number,string,boolean]=[1,'hello',true];
Array 와 Tuple 의 차이점
- array 는 길이가 가변적이며 동일한 타입의 요소로 구성
- Tuple 은 길이가 고정적이며 각 요소의 타입이 정해져있다.
🌟 배운 점
오늘은 어제에 이어 타입스크립트에 대해 배웠다. 나는 기존에 number와 string 같은 기본 타입들만 알고 있었는데, any나 유니온 타입 등 내가 예상했던 것보다 더 다양한 타입을 사용할 수 있다는 것을 새롭게 알게 되었다. 또, 클래스와 객체 생성 방법을 배웠는데, 자바와 크게 다르지는 않지만 매개변수에 접근 지정자, 변수 이름, 타입을 한 번에 정의하는 문법이 다소 생소하게 느껴졌다. 타입스크립트와 좀 더 익숙해지는 시간이 필요할 것 같다.
'데브코스' 카테고리의 다른 글
리액트(2) (0) | 2024.10.31 |
---|---|
리액트(React) (0) | 2024.10.30 |
타입스크립트(Typescript) (2) | 2024.10.28 |
객체 지향 프로그래밍 (0) | 2024.10.27 |
컴파일 언어 이해하기(2) (1) | 2024.10.26 |