Чтобы написать функцию, возвращающую класс в зависимости от параметра, в 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
возвращает класс в зависимости от переданного параметра, позволяя вам динамически выбирать класс в вашем коде.