Sobes.tech
Middle

Jak opisać klasę w TypeScript, którą tworzymy w funkcji i zwracamy na zewnątrz?

sobes.tech AI

Odpowiedź od AI

// Определяем тип для экземпляра класса
type MyClassInstance = {
  myProperty: string;
  myMethod(): void;
};

// Тип для конструктора класса
type MyClassConstructor = new () => MyClassInstance;

// Функция, которая создает и возвращает класс
function createAndReturnClass(): MyClassConstructor {
  // Здесь создаем класс анонимно
  return class {
    myProperty: string = "Привет из класса";

    myMethod() {
      console.log(this.myProperty);
    }
  };
}

// Получаем класс из функции
const DynamicClass = createAndReturnClass();

// Создаем экземпляр динамического класса
const instance: MyClassInstance = new DynamicClass();

// Используем экземпляр
instance.myMethod();