타입스크립트는 자바스크립트의 상위 집합으로 코드에 타입(Type)을 부여하여
개발 과정에서 발생할 수 있는 오류를 미리 방지하고
코드의 안정성과 가독성을 높이는 데 도움을 줍니다.
타입스크립트의 기본 타입은 자바스크립트에서 사용하는 데이터 타입과 매우 유사하지만,
타입스크립트의 강력한 타입 시스템에 맞게 더 명확하게 정의되고 활용됩니다.
1. Boolean (불리언)
참/거짓을 나타내는 논리적인 타입을 말합니다.
let isDone: boolean = false;
let hasStarted: boolean = true;
2. Number (숫자)
모든 숫자 타입은 Number로 통일됩니다. 정수, 실수, 16진수, 2진수, 8진수 등 모든 형태의 숫자를 포함합니다. 자바스크립트와 마찬가지로, number 타입의 값은 64비트 부동소수점 형식으로 저장됩니다.
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;
let pi: number = 3.14;
3. String (문자열)
문자 데이터를 나타내는 타입입니다. 작은따옴표/큰따옴표/백틱(템플릿 리터럴)을 모두 사용할 수 있습니다.
let name: string = "Kim";
let greeting: string = `Hello, ${name}!`;
4. Array (배열)
같은 타입의 값들을 여러 개 담는 타입입니다. type[] 또는 Array<type> 두 방식이 있습니다.
let numbers: number[] = [1, 2, 3];
let fruits: Array<string> = ["apple", "banana"];
5. Tuple (튜플)
배열인데 길이와 각 인덱스의 타입이 고정된 타입입니다. (예: [이름, 나이])
let user: [string, number] = ["Taewoo", 25];
6. Enum (열거형)
정해진 값들만 선택하도록 강제할 때 유용합니다. (상태값, 카테고리 등)
enum Direction {
Up,
Down,
Left,
Right,
}
let move: Direction = Direction.Left;
7. Any
어떤 타입이든 허용합니다. 편하지만 타입 안정성을 깨뜨릴 수 있어서 최소한으로 쓰는 걸 권장합니다.
let value: any = 1; value = "hello"; value = true;
8. Unknown
any보다 안전한 “모르는 타입”입니다. 사용하기 전에 타입 체크가 필수라서 안정적입니다.
let input: unknown = "hello"; if (typeof input === "string") { console.log(input.toUpperCase()); }
9. Void
함수에서 반환값이 없을 때 사용하는 타입입니다.
function logMessage(msg: string): void { console.log(msg); }
10. Null / Undefined
각각 “값이 없음”을 의미합니다. (프로젝트 설정에 따라 엄격하게 다뤄짐)
let n: null = null; let u: undefined = undefined;
11. Never
절대 발생하지 않는 값의 타입입니다. (예: 무한 루프, 항상 에러를 던지는 함수)
function throwError(message: string): never { throw new Error(message); }
12. Object (객체)
객체 타입은 보통 object로도 쓰지만, 실무에서는 구체적인 형태를 직접 정의하는 게 핵심입니다.
let person: { name: string; age: number } = { name: "Kim", age: 25, };
13. Union Type (유니온 타입)
여러 타입 중 하나가 될 수 있게 만드는 타입입니다. (API 응답/입력값에서 매우 자주 씀)
let id: string | number; id = "abc"; id = 123;
14. Literal Type (리터럴 타입)
값 자체를 타입으로 제한합니다. (버튼 variant, 상태값 같은 곳에 강력함)
let status: "success" | "error" | "loading"; status = "loading";
15. Type Alias / Interface (타입 별칭 / 인터페이스)
객체/함수 타입을 재사용 가능하게 정의합니다. (가독성/유지보수 핵심)
type User = { id: number; name: string; }; const u: User = { id: 1, name: "Kim" };
interface Product { id: number; price: number; } const p: Product = { id: 1, price: 3000 };
'TypeScript' 카테고리의 다른 글
| 제네릭 타입 변환과 axios,fetch (0) | 2025.09.12 |
|---|