Как использовать TypeScript для функции нескольких типов запросов \ ответов? - PullRequest
0 голосов
/ 17 июня 2020

У меня есть несколько типов запросов:

   interface RequestA {};
   interface RequestB {};

Каждый запрос имеет соответствующий тип ответа, который будет возвращен:

   interface ResponseA {};
   interface ResponseB {};

Мне нужны другие модули в моем приложении, чтобы иметь возможность в добавить дополнительные типы запросов и ответов (возможно, используя typescript declaration merging?), чтобы кто-то другой мог зарегистрировать RequestC и соответствующий ему тип ResponseC.

В конце концов я хочу иметь типизированная executeRequest функция, которая принимает типизированный объект запроса, и возвращаемый ответ должен иметь правильный тип.

   const request: RequestA;
   const response = myHandler.executeRequest(request);
   // type of response should be ResponseA

   // This type is registered by some other module!
   const anotherRequest: RequestC;
   const anotherResponse = myHandler.executeRequest(anotherRequest);
   // type of response should be ResponseC

Как вы бы порекомендовали ввести эту функцию function executeRequest(request: ?) => ? с TypeScript?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...