Предположим, что у меня есть объект, содержащий некоторые данные. Я хочу создать общий преобразователь (соответственно, только функцию - я не хочу постоянно создавать экземпляр нового класса) для всех типов, которые можно использовать следующим образом: this.responseMapper.map<CommentDTO>(data);
Он должен просто взять все свойства из данного типа и сопоставить с ним данные. Что я пробовал до сих пор:
public map<T>(values: any): T {
const instance = new T();
return Object.keys(instance).reduce((acc, key) => {
acc[key] = values[key];
return acc;
}, {}) as T;
}
new T();
выдаст ошибку: 'T' only refers to a type, but is being used as a value here.
Как правильно это сделать?
type: typeof T
и вызоветеnew type()
, он скомпилируется? - person cbr   schedule 09.01.2018pick
. - person cbr   schedule 09.01.2018