기본 패턴
ts
class User {
constructor(
public id: number,
public name: string,
) {}
}설명
- TypeScript 클래스는 JavaScript의
class문법을 기반으로 하면서, 필드 타입과 접근 제어자를 더 명확하게 표현합니다. - 생성자 매개변수에
public,private,readonly를 붙이면 필드 선언과 초기화를 한 번에 줄여 쓸 수 있습니다. - 클래스는 런타임 값이면서 동시에 타입 정보의 원천이기도 하므로, 인스턴스 구조와 생성 규칙을 함께 담습니다.
extends,implements, getter/setter, 추상 클래스 같은 객체지향 기능도 타입 검사를 받으며 사용할 수 있습니다.- 다만 TypeScript의 타입 시스템은 구조적 타이핑이 기본이므로, 전통적인 명목 타입 언어와는 다르게 작동하는 부분도 염두에 두어야 합니다.
짧은 예제
ts
class Counter {
private count = 0;
increment() {
this.count += 1;
}
value() {
return this.count;
}
}빠른 정리
| 요소 | 역할 |
|---|---|
constructor | 생성 시 초기화 로직 |
public | 외부 접근 허용 |
private | 클래스 내부에서만 접근 |
readonly | 생성 후 재할당 금지 |
implements | 특정 계약을 따르게 함 |
주의할 점
TypeScript 클래스는 타입 정보를 더 잘 적게 해 주지만, 객체 모델 자체를 단순화해 주는 것은 아닙니다. 작은 데이터 구조라면 클래스보다 객체 타입과 함수를 조합하는 편이 더 가벼울 수도 있습니다.
참고 링크
1 sources