Búsqueda de sitios web

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) {}
}

Artículos relacionados