Classes, Constructors (los constructores)

Los constructores son muy similares a las funciones. Se pueden agregar parámetros que incluyen anotaciones acerca de su tipo, valor por default y sobrecarga.

class Punto {
    x: number;
    y: number;

    //   asignatura normal utilizando valores por default
    constructor(x = 10, y = 10) {
        this.x = x;
        this.y = y;
    }
}

let miPunto = new Punto();
console.log(miPunto.x);
console.log(miPunto.y);

Salida del programa…

10
10

Sobrecarga del constructor

Como se mencionó también podemos usar la sobrecarga para definir varias formas de trabajar del constructor.

class Punto {
    // uso de sobrecarga
    constructor(x: number, y: number);
    constructor(s: string);
    constructor(xs: number | string, y?: number) {}
}

Existen algunas diferencias entre la firma de un constructor y de una función.

  • Los constructores no pueden tener tipos en sus parámetros, estos se hacen fuera de la declaración de la clase.
  • Los constructores no pueden retornar anotaciones de tipo, la instancia de la clase siempre es retornada.