Typescript 数组的构造函数

Typescript 数组的构造函数,typescript,Typescript,我试图将强类型数组的构造函数传递给方法 方法如下所示: foo<T>(clazz: {new(): T[]}) { // ... } 使用MapUtils.deserialize,我希望得到以下结果: [ <Person> { name: "name1", ... }, <Person> { name: "name2", ... } ] [ {name:“name1”,…}, {name:“name2”,…} ] 我没有用过这个Ma

我试图将强类型数组的构造函数传递给方法

方法如下所示:

foo<T>(clazz: {new(): T[]}) {
    // ...
}
使用
MapUtils.deserialize
,我希望得到以下结果:

[
    <Person> { name: "name1", ... },
    <Person> { name: "name2", ... }
]
[
{name:“name1”,…},
{name:“name2”,…}
]

我没有用过这个
MapUtils
东西,但是你可以尝试这样做:

MapUtils.deserialize(Array, JSON_DATA);
如果这不起作用,那么您只需在数组上迭代,并对每个项使用
MapUtils。反序列化

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));

构造函数只能创建实例,不能创建数组。你能展示更多你想做的事情的代码吗?@NitzanTomer:请看更新(最后一段),这篇文章有一部分是为了,这对你不好?如果没有,请添加一个具体的json示例以及要将其转换为的类。@NitzanTomer:本节介绍指定类型的数组属性。但我看不出它如何帮助我直接反序列化数组。不清楚您的场景是什么。您是否得到了一个json,它是一个应该实例化的对象数组?如果您只发布一个json示例和您想要创建的类,那么所有这些乒乓球都可以避免。
let arr = JSON_DATA.map(item => MapUtils.deserialize(Person, item));