我对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
类只是一大堆属性和构造函数。
答案 0 :(得分:2)
如果window['panels']['views']
内的数据是Panel数组,您只需要将其转换为使TypeScript满意:
this.panels = <Panel[]>(window['panels']['views']);
这不会改变生成的javascript的任何内容,但会编译。
请注意,它永远不会调用Panel
构造函数。你window['panels']['views']
中的对象已经是实时的,所以它只是一个演员。