javascript - Instanciando un arreglo de objetos desde JSON
Soy bastante nuevo en Typescript, así que me imagino que esta es una pregunta bastante tonta, pero tengo un arreglo de objetos JSON que quiero mapear a una clase Panel.
Cuando se instancia mi clase PanelsService, también quiero instanciar mi arreglo de objetos Panel.
Lo que tengo hasta ahora:
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'];
}
}
A partir de esto, ninguno de mis Panels se está instanciando (tengo un registro en el constructor). Obviamente, podría recorrer window['panels']['views'] y hacer algo como this.panels.push(new Panel(myPanel), pero parece que debe haber una mejor manera.
Para lo que vale, mi clase Panel es solo un montón de propiedades y un constructor.
Respuesta #1
Si los datos dentro de window['panels']['views'] son un array de Panel, solo necesitas convertirlo para que TypeScript esté contento:
this.panels = <Panel[]>(window['panels']['views']);
Esto no cambiará nada para el JavaScript generado, pero se compilará.
Ten en cuenta que nunca llamará al constructor Panel. Tu objeto en window['panels']['views'] ya está instanciado, así que es solo un tipo de conversión.
