TypeScript클래스와 모듈

클래스 기초

JavaScript 클래스 문법 위에 타입 정보와 접근 제어를 더한 TypeScript 클래스의 기본 구조를 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

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