
TypeScript의 타입들
1. 기본 타입 (Primitive Types)
let name: string = "Kim";
let age: number = 25;
let isLogin: boolean = true;
2. 배열 (Array)
let numbers: number[] = [1, 2, 3];
let names: string[] = ["A", "B"];
3. 객체 (Object)
let user: { name: string; age: number } = {
name: "Kim",
age: 25,
};
4. 함수 타입
function greet(name: string): string {
return `Hello ${name}`;
}
5. Optional (선택적 속성)
type User = {
name: string;
age?: number; // 있어도 되고 없어도 됨
};
6. Union Type (여러 타입 허용)
let id: string | number;
id = "123";
id = 123;
7. Any (비추천)
let data: any = "hello";
data = 123;
data = true;
→ 타입 검사를 완전히 무력화하기 때문에 가능한 사용하지 않는 것이 좋다.
8. Interface 사용하기
반복되는 객체 타입은 Interface로 관리하는 것이 좋다.
interface User {
name: string;
age: number;
}
const user: User = {
name: "김철수",
age: 20,
};
코드 재사용성이 높아지고 유지보수가 쉬워진다.
9. Type Alias 사용하기
타입에 이름을 붙여서 사용할 수 있다.
type User = {
name: string;
age: number;
};
const user: User = {
name: "김철수",
age: 20,
};
Interface와 Type의 차이
처음 TypeScript를 배우면 대부분 이런 의문이 생긴다. "둘 다 객체 타입 선언하는 거 같은데 뭐가 다른 거지?"
실제로 기본적인 객체 선언은 거의 동일하게 동작한다.
하지만 사용할 수 있는 범위와 확장 방법에서 차이가 있다.
1. Type은 다양한 타입을 선언할 수 있다
Interface는 객체 구조 정의에 특화되어 있다.
반면 Type은 객체 외에도 다양한 타입을 만들 수 있다.
type ID = string | number;
type Status = "success" | "error";
type Point = [number, number];
Interface는 이런 선언이 불가능하다.
interface ID = string | number;
// Error
2. Interface는 선언 병합이 가능하다
동일한 이름의 Interface를 여러 번 선언하면 자동으로 합쳐진다.
interface User {
name: string;
}
interface User {
age: number;
}
const user: User = {
name: "Kim",
age: 20,
};
Type은 불가능하다.
type User = {
name: string;
};
type User = {
age: number;
};
// Error
3. 확장 방법의 차이
Interface
interface User {
name: string;
}
interface Admin extends User {
role: string;
}
Type
type User = {
name: string;
};
type Admin = User & {
role: string;
};
Type은 교차 타입(&)을 사용해 확장한다.
'Typescript' 카테고리의 다른 글
| 타입스크립트는 왜 쓰는 걸까? (0) | 2026.06.11 |
|---|