Как написать функцию которая возвращает класс в зависимости от параметра?

Чтобы написать функцию, возвращающую класс в зависимости от параметра, в TypeScript можно использовать объединение типов и условный оператор.

Вот пример такой функции:

function getClassByParam(param: string): typeof MyClass1 | typeof MyClass2 {
  if (param === "class1") {
    return MyClass1;
  } else if (param === "class2") {
    return MyClass2;
  } else {
    throw new Error("Invalid parameter");
  }
}

В этом примере функция getClassByParam принимает параметр param типа string и возвращает тип, являющийся объединением типов MyClass1 и MyClass2 (классы, которые должны быть возвращаемыми).

Внутри функции происходит проверка значения параметра с помощью условного оператора if-else. Если значение param равно "class1", функция возвращает тип MyClass1, а если равно "class2", функция возвращает тип MyClass2. В случае, если значение param не совпадает с "class1" или "class2", генерируется ошибка с сообщением "Invalid parameter".

Пример классов MyClass1 и MyClass2:

class MyClass1 {
  // Код класса MyClass1
}

class MyClass2 {
  // Код класса MyClass2
}

Вы можете использовать эту функцию для получения нужного класса в зависимости от переданного параметра:

const param1 = "class1";
const class1 = getClassByParam(param1);
console.log(class1); // MyClass1

const param2 = "class2";
const class2 = getClassByParam(param2);
console.log(class2); // MyClass2

В этом примере мы создаем переменные param1 и param2, которые содержат значения "class1" и "class2" соответственно. Затем мы вызываем функцию getClassByParam с этими параметрами и сохраняем возвращенные классы в переменные class1 и class2. Наконец, мы выводим значения переменных class1 и class2 в консоль, чтобы убедиться, что функция работает правильно.

Таким образом, функция getClassByParam возвращает класс в зависимости от переданного параметра, позволяя вам динамически выбирать класс в вашем коде.