我试图将强类型数组的构造函数传递给方法。
方法如下:
foo<T>(clazz: {new(): T[]}) {
// ...
}
但我无法调用此方法。我试过foo<MyClass>(MyClass[])
,但这只会产生编译错误。
我正在尝试使用here中的MapUtils类将JSON数组反序列化为强类型对象数组。
我收到以下JSON:
[
{name: "name1", ...},
{name: "name2", ...}
]
并且,使用MapUtils.deserialize
,我希望这样做:
[
<Person> { name: "name1", ... },
<Person> { name: "name2", ... }
]
答案 0 :(得分:0)
我没有使用过这个MapUtils
的东西,但你可以尝试这样做:
MapUtils.deserialize(Array, JSON_DATA);
如果这不起作用,那么您可以简单地遍历数组,并使用MapUtils.deserialize
对每个项目进行迭代:
let arr = [] as Person[];
JSON_DATA.forEach(item => arr.push(MapUtils.deserialize(Person, item)));
或使用Array.map
方法:
let arr = JSON_DATA.map(item => MapUtils.deserialize(Person, item));