타입스크립트의 대표적인 기본 타입은 다음과 같다.
number숫자 타입 (정수, 실수, NaN, Infinity 포함)
let num: number = 10;
let pi: number = 3.14;
let nan: number = NaN;
string문자열 타입
let str: string = "Hello, TypeScript!";
boolean참/거짓을 나타내는 타입
let bool: boolean = true;
null값이 없음을 나타내는 타입
let empty: null = null;
undefined정의되지 않은 값을 나타내는 타입
let notAssigned: undefined = undefined;
bigint큰 정수를 다루는 타입
let big: bigint = 9007199254740991n;
symbol유일한 값을 생성하는 타입
let uniqueKey: symbol = Symbol("key");
원시 타입은 값이 변경될 수 없는(immutable) 타입이며,
기본 타입과 거의 동일하다.
| 원시 타입 | 설명 |
|---|---|
number | 숫자 (정수, 실수, NaN, Infinity 포함) |
string | 문자열 |
boolean | 논리값 (true, false) |
null | 값이 없음 |
undefined | 정의되지 않음 |
bigint | 큰 정수를 다룰 때 사용 |
symbol | 유일한 값을 생성 |
리터럴 타입은 특정한 값을 가지는 타입을 의미한다.
정확한 값만 허용하는 특징이 있다.
즉, 특정 문자열이나 숫자만 허용하고, 그 외의 값은 허용되지 않는다.
let direction: "left" | "right" | "up" | "down";
direction = "left"; // ✅ 허용
direction = "right"; // ✅ 허용
direction = "center"; // ❌ 오류: "center"는 허용되지 않음
let statusCode: 200 | 400 | 404 | 500;
statusCode = 200; // ✅ 허용
statusCode = 403; // ❌ 오류: 403은 허용되지 않음
let isActive: true;
isActive = true; // ✅ 허용
isActive = false; // ❌ 오류: false는 허용되지 않음
리터럴 타입은 보통 유니온 타입(|)과 함께 사용되어,
특정 값들만 허용하는 방식으로 사용된다.
type ButtonSize = "small" | "medium" | "large";
function setButtonSize(size: ButtonSize) {
console.log(`버튼 크기: ${size}`);
}
setButtonSize("medium"); // ✅ 정상 실행
setButtonSize("x-large"); // ❌ 오류: "x-large"는 ButtonSize 타입이 아님