@tonyshow

Как в typescript динамически вызывать и определять экземпляр классов и их метод через new some_client[class_name]()?

Есть .ts клиент сгенерированный nswag в нем есть набор классов и методов, которые требуется вызывать динамически подставляя в функции вызова, имена классов и их методов.
Пример кода:
5d3671a005c68896500250.png

import * as client from './nswag/clients';
import { errorsStore } from '../stores';

interface IClass {
  [key: string]: () => any
}

function requestsHandling<T, X, U>(cb: (_: T) => X | void, cls: string, method: string, params?: U) {
  const fn = new client[cls]<IClass>();
	const request = async () => await fn[method](params);
	return request()
		.then(async (result) => {
			const res = await result;
			console.log(res);
			cb(res);
		})
		.catch((err) => {
			errorsStore.addError(err);
		});
};
export default requestsHandling;
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы