String, number, boolean, object, array, tuple, enum, any, void, never 이 있다.
이 중에서 주의할 것만 몇 가지 살펴보고 넘어가자.
object
let product: object = { name: 'pdr-1234', lang: 'kor' };
위와 같이 쓸 수 있지만, 보통은 "인터페이스" or "타입 별칭" 을 쓴다.
배열
// 방법1. [] 배열 선언
let arr1: number[] = [1,2,3,4,5];
// 방법2. 제네릭 선언
let arr2: Array<number> = [1,2,3,4,5];
튜플
- 배열의 길이가 고정되고, 각 요소의 타입이 지정되어 있는 배열.
let arr: [string, number] = ['hi', 10];
정의되지 않는 타입이나 인덱스로 접근하면 에러가 발생한다.
enum
다른 언어에서의 enum과 동일하다.
enum Avengers {
Capt,
IronMan,
Thor
}
let hero1: Avengers = Avengers.Capt; //캡틴
let hero2: Avengers = Avengers[0]; //캡틴
// 아래와 같이 사용자 편의로 인덱스를 변경할 수 있다.
enum Avengers {
Capt=100,
IronMan,
Thor
}
let hero1: Avengers = Avengers[100]; //캡틴
let hero2: Avengers = Avengers[101]; //아이언맨
any
모든 타입에 사용 가능하다. 즉, 모든 타입에 대해서 허용한다는 의미이므로 주의해서 사용해야한다.
let str: any = 'hi';
let num: any = 10;
let arr: any = ['a', 2, true];
void
return 이 없거나, 반환 값이 없으면 void 로 지정해준다.
function printSomething(): void {
console.log('sth');
}
function returnNothing(): void {
return;
}
never
절대 발생하지 않는 값.
예를 들어, 반복문이나 에러 핸들링으로 인해 함수의 끝에 도달하지 않는 경우에 사용.
// 이 함수는 절대 함수의 끝까지 실행되지 않는다는 의미
function loopForever(): never {
while (true) {
// ..
}
}
function neverEnd(): never {
throw new Error('unexpected');
}
'언어 > TypeScript' 카테고리의 다른 글
| Union Type, Intersection Type (0) | 2025.04.14 |
|---|---|
| enum 자료형 (0) | 2025.04.13 |
| 인터페이스 (0) | 2025.04.13 |
| 함수 (0) | 2025.04.11 |
| 어째서 타입스크립트인가? (0) | 2025.04.11 |