假设我有一个包含一些数据的对象。我想要构建一个通用映射器(只是一个函数,我不想一直实例化新类),以便所有类型都可以像这样使用:
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' 仅表示类型,但在此处被用作值。
应该如何正确处理?
type: typeof T
并调用new type()
,它会编译吗? - cbrpick
。 - cbr