TypeScript agregar objeto a un arreglo con push
Solo me gustaría agregar un objeto de una clase (Pixel) a un arreglo.
export class Pixel {
constructor(x: number, y: number) {}
}
La clase tiene el siguiente atributo:
pixels: Pixel[] = [];
El siguiente código me parece lógico, pero no agrega los objetos reales a mi arreglo pixels.
this.pixels.push(new Pixel(x, y));
Solo esto funciona:
var p = {x:x, y:y};
this.pixels.push(p);
¿Alguien podría explicarme por qué la declaración anterior no funciona?
Respuesta #1
Si tu ejemplo representa tu código real, el problema no está en el push, es que tu constructor no hace nada.
Necesitas declarar e inicializar los miembros x y y.
Explícitamente:
export class Pixel {
public x: number;
public y: number;
constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
}
O implícitamente:
export class Pixel {
constructor(public x: number, public y: number) {}
}
