У меня есть несколько API для обеспечения одной и той же функциональности, я хочу обернуть их, поэтому мне нужно обрабатывать только один класс, и в будущем может быть добавлено несколько API.
Что я уже сделал:
class FirstAPI: API {}
class SecondAPI: API {}
class GeneralAPI: API {
public api: API;
constructor(type: string){
if(type === 'first') {
this.api = new FirstAPI();
}
if(type === 'second') {
this.api = new SecondAPI();
}
}
someMethod(){
this.api.someMethod();
}
}
Как вы можете видеть, делая это, я вынужден без необходимости повторять свои методы, а также вручную обрабатывать тип ввода и вывода в классе General.
Пожалуйста, предложите какое-нибудь лучшее, более элегантное решение. с надлежащей поддержкой типа.