basicstypescript
TypeScript 기초 - 타입 시스템과 기본 문법
✨ AI 요약
긴 글, 핵심만 먼저 — 이 글을 3줄로 정리해드려요.
조회 0
TypeScript는 JavaScript에 정적 타입 시스템을 추가한 언어입니다.
컴파일 시점에 타입 오류를 발견할 수 있어, 대규모 프로젝트에서 코드 안정성을 크게 향상시킵니다.
1. 기본 타입
let name: string = "kwkang";
let age: number = 30;
let isActive: boolean = true;
let items: string[] = ["a", "b", "c"];
let user: { name: string; age: number } = { name: "kwkang", age: 30 };
- 기본 타입:
string,number,boolean,null,undefined - 배열:
string[]또는Array<string> - 객체:
{ key: type }형태로 타입 정의
2. 타입 추론
let name = "kwkang"; // 타입: string (자동 추론)
let age = 30; // 타입: number (자동 추론)
// 명시적 타입 선언이 필요한 경우
let value: string | number; // 유니온 타입
- TypeScript는 대부분의 경우 타입을 자동으로 추론합니다.
- 명시적 타입 선언은 타입이 복잡하거나 추론이 어려울 때 사용합니다.
3. 인터페이스와 타입 별칭
// 인터페이스
interface User {
id: number;
name: string;
email?: string; // 선택적 속성
}
// 타입 별칭
type Status = "pending" | "approved" | "rejected";
// 인터페이스 확장
interface Admin extends User {
role: "admin";
}
interface: 객체 구조를 정의할 때 주로 사용 (확장 가능)type: 유니온, 인터섹션 등 복잡한 타입 정의에 사용
4. 함수 타입
function greet(name: string): string {
return `Hello, ${name}`;
}
// 화살표 함수
const add = (a: number, b: number): number => a + b;
// 옵셔널 파라미터
function log(message: string, prefix?: string): void {
console.log(prefix ? `${prefix}: ${message}` : message);
}
- 함수 파라미터와 반환 타입을 명시할 수 있습니다.
void: 반환값이 없을 때 사용
5. 제네릭
function identity<T>(arg: T): T {
return arg;
}
const result = identity<string>("hello");
const numberResult = identity<number>(42);
// 제네릭 인터페이스
interface Container<T> {
value: T;
getValue(): T;
}
- 제네릭으로 재사용 가능한 타입을 정의할 수 있습니다.
6. 실무 팁
- 점진적 적용: JavaScript 프로젝트에 점진적으로 TypeScript 도입 가능
- 엄격 모드:
strict: true옵션으로 타입 안정성 최대화 - 타입 정의 라이브러리:
@types/*패키지로 외부 라이브러리 타입 지원 - any 피하기:
any타입은 타입 안정성을 해치므로 최대한 피할 것
TypeScript는 "타입 안정성을 통해 런타임 에러를 줄인다"는 철학을 따릅니다.
초기 설정 비용이 있지만, 프로젝트가 커질수록 그 가치가 명확해집니다.