[typescript] 타입 앨리어스와 유니온 타입을 사용하여 클래스를 정의할 수 있나요?

다음은 타입 앨리어스와 유니온 타입을 사용하여 클래스를 정의하는 예제입니다.

// 타입 앨리어스를 사용하여 여러 타입을 정의
type BookFormat = "hardcover" | "paperback" | "e-book";

class Book {
  // 유니온 타입을 사용하여 여러 타입 중 하나를 지정
  format: BookFormat;

  constructor(format: BookFormat) {
    this.format = format;
  }
}

// Book 클래스의 인스턴스 생성
const myBook = new Book("hardcover");

위 예제에서는 먼저 BookFormat이라는 타입 앨리어스를 선언하여 “hardcover”, “paperback”, “e-book”이라는 세 가지 문자열 타입을 정의합니다. 그런 다음 Book 클래스 내부에서 format 멤버 변수의 타입으로 BookFormat을 사용하여 세 가지 타입 중 하나를 지정합니다.

이와 같이 TypeScript에서는 타입 앨리어스와 유니온 타입을 활용하여 클래스를 유연하게 정의할 수 있습니다.