数组

时间:2017-01-25 15:54:11

标签: typescript

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

方法如下:

foo<T>(clazz: {new(): T[]}) {
    // ...
}

但我无法调用此方法。我试过foo<MyClass>(MyClass[]),但这只会产生编译错误。

我正在尝试使用here中的MapUtils类将JSON数组反序列化为强类型对象数组。

我收到以下JSON:

[
    {name: "name1", ...},
    {name: "name2", ...}
]

并且,使用MapUtils.deserialize,我希望这样做:

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

1 个答案:

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