从JSON实例化对象数组

时间:2015-12-22 14:34:55

标签: javascript typescript

我对Typescript很新,所以我想这是一个非常愚蠢的问题,但我有一个JSON对象数组,我想映射到Panel类。

当我的PanelsService类被实例化时,我还想实例化我的Panel对象数组。

到目前为止我得到了什么:

PanelsService.ts

import {Panel} from './panel';

declare var _: any;

export class PanelsService {

  public panels: Array<Panel>;
  public customPanels: Array<Panel>;

  constructor(private _http:Http) {
    this.panels = window['panels']['views'];
  }
}

由此,我的Panels都没有被实例化(我在构造函数中有一个日志)。显然,我可以循环window['panels']['views']并执行this.panels.push(new Panel(myPanel)之类的操作,但似乎必须有更好的方法。

FWIW,我的Panel类只是一大堆属性和构造函数。

1 个答案:

答案 0 :(得分:2)

如果window['panels']['views']内的数据是Panel数组,您只需要将其转换为使TypeScript满意:

this.panels = <Panel[]>(window['panels']['views']);

这不会改变生成的javascript的任何内容,但会编译。
请注意,它永远不会调用Panel构造函数。你window['panels']['views']中的对象已经是实时的,所以它只是一个演员。