앞서 클래스는 타입스크립트에서 값으로 쓰이면서 타입이 되기도 한다고 설명했습니다. 다만 타입으로 사용할 때 클래스의 이름은 클래스 자체의 타입이 아니라 인스턴스의 타입이 됩니다. 클래스 자체의 타입이 필요하다면 'typeof 클래스이름'으로 타이핑해야 합니다.
const person1: Person = new Person('zero', 28, false);
const P: typeof Person = Person;
const person2 = new P('nero', 32, true);
클래스 멤버로는 옵셔널이나 readonly뿐만 아니라 public, protected, private 수식어가 추가되었습니다.
class Parent {
name?: string;
readonly age: number;
protected married: boolean;
private value: number;
constructor(name: string, age: number, married: boolean) {
this.name = name;
this.age = age;
this.married = married;
this.value = 0;
}