TypeScript 타입 치트시트 (기본 타입 정리)
기본 타입, interface vs type, 유니온, 제네릭, 유틸리티 타입(Partial·Pick 등) 등 TypeScript 핵심 타입 문법을 정리한 치트시트입니다.
기본 타입
const name: string = '연욱';
const age: number = 20;
const ok: boolean = true;
const tags: string[] = ['a', 'b'];
const pair: [string, number] = ['x', 1]; // 튜플
let any1: unknown; // any보다 안전(쓰기 전 검사 필요)
interface vs type
interface User { id: number; name: string; }
type User2 = { id: number; name: string };
- 둘 다 객체 구조를 정의.
interface는 선언 병합·확장(extends)에 유리 - 유니온·튜플·기본타입 별칭은
type만 가능
유니온 · 리터럴
type Status = 'idle' | 'loading' | 'done'; // 정해진 값만 허용
let s: Status = 'idle';
type Id = number | string;
옵셔널 · 읽기전용
interface Props {
title: string;
subtitle?: string; // 있어도 되고 없어도 됨
readonly id: number; // 재할당 불가
}
제네릭
function first<T>(arr: T[]): T | undefined {
return arr[0];
}
const n = first([1, 2, 3]); // number | undefined
유틸리티 타입 (자주 쓰는 것)
| 타입 | 효과 |
|---|---|
Partial<T> | 모든 속성 옵셔널 |
Required<T> | 모든 속성 필수 |
Pick<T, K> | 일부 속성만 추출 |
Omit<T, K> | 일부 속성 제외 |
Record<K, V> | 키-값 객체 타입 |
ReturnType<F> | 함수 반환 타입 |
type UserCard = Pick<User, 'id' | 'name'>;
type Dict = Record<string, number>;
타입 불일치 오류가 난다면 Type is not assignable 문서를 참고하세요.