[typescript] 다중 타입을 사용하여 클래스의 생성자 파라미터를 다루는 방법을 알려주세요.

이를 위해 다음의 단계를 따릅니다.

  1. 먼저, Union Types(유니온 타입)을 사용하여 생성자 파라미터에 여러 타입을 지정합니다.
  2. 그 다음, Type Guards(타입 가드)를 활용하여 각 타입에 따라 다른 동작을 수행할 수 있습니다.
  3. 마지막으로, 각 타입에 따른 동작을 구현한 클래스 내부 로직을 작성합니다.

아래는 간단한 예시입니다.

class User {
    username: string;
    age: number;

    constructor(param: string | number) {
        if (typeof param === 'string') {
            this.username = param;
        } else {
            this.age = param;
        }
    }
}

const user1 = new User('Alice');
console.log(user1.username); // 출력: "Alice"

const user2 = new User(25);
console.log(user2.age); // 출력: 25

위 예시에서, User 클래스의 생성자 파라미터인 paramstring 또는 number 타입을 가질 수 있습니다. typeof 연산자를 사용하여 파라미터의 타입을 확인하고, 그에 맞는 속성을 설정하거나 동작을 수행하고 있습니다.

이와 같이, TypeScript에서는 다중 타입을 사용하여 클래스의 생성자 파라미터를 다룰 수 있습니다. 이를 통해 더 유연하고 다양한 상황에 대응할 수 있는 클래스를 구현할 수 있습니다.