У меня есть массив типов, объявленных как
const APIS = [NewsApi, CommentsApi, FileApi];
Я хочу иметь метод, который принимает один из этих типов из этого массива APIS
, например:
myMethod<T extends anyof APIS>(apiType: T): T {
const api = new apiType(); //pseudo code, does not work off course
// some common configuration code
return api;
}
. Я не могу сделать myMethod<T extends NewsApi|CommentsApi>(): T
, так как массив APIS генерируется автоматически. Возможно ли это с машинописью?
Обновление:
Решение Алексея отлично подходит для передачи ввода. Тем не менее, тип возврата не может быть выведен из использования.
const myApi = myMethod(NewsApi);
В вышеупомянутом случае, myApi не имеет тип NewsApi
, но NewsApi|CommentsApi|FileApi
. Можно ли явно установить тип возвращаемого значения для экземпляра типа ввода API?