Assume that I have an object containing some data. I want to build a generic mapper (only a function respectively - I don't want to instantiate a new class all the time) for all types to use like this: this.responseMapper.map<CommentDTO>(data);
It should simply take all properties from the given type and map the data to it. What I tried so far:
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();
will throw an error: 'T' only refers to a type, but is being used as a value here.
What's the correct way to do this?