Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Constructor

6/25
Recursos

Aportes 3

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

En nuestro caso deberia ser “Bob the Constructor”

En el constructor debes colocar de forma explicita el tipo de acceso si es público o privado.

Les comparto mis apuntes. 😄

Constructor

Es el constructor en el que construimos la instancia y mandamos los parámetros por defecto por el cual queremos que se inicialice esa instancia a un objeto.

Sintaxis de las propiedades del constructor

TypeScript nos ayuda con las clases.

Sintaxis anterior

class ClassName {
		property1: dataType;
		propertyN: dataType;
		constructor (property1: dataType, propertyN: dataType) {
				this.proterty1 = property1;
				this.protertyN = propertyN;
		}
}

Nueva sintaxis en TypeScript

De esta forma estaríamos definiendo y asignando las propiedades de una manera corta.

Cabe destacar que debemos de aclarar o ser explícitos con el alcance de las propiedades, caso contario no podremos usar esta característica de TypeScript además que no podremos usar esa propiedad a lo largo de la clase, ya que su scope solo se verá limitado al constructor.

class ClassName {
		constructor (
				scope property1: dataType, 
				scope propertyN: dataType
		) {
				statements
		}
}

Valores por defecto

Al tener valores por defecto, al momento de crear una instancia de esa clase ya no es obligatorio pasar ese parámetro que tiene un valor por defecto.

class ClassName {
		constructor (
				scope property1: dataType = value, 
				scope propertyN: dataType = value
		) {
				statements
		}
}

Código de la clase

type PartOfTheCalendar = 'day' | 'month'| 'year';

export class MyDate {
    // year: number;
    // private month: number;
    // #day: number;

    constructor (
        public year: number = 1993,
        public month: number = 7,
        private day: number = 3
    ) {
        // this.year = year;
        // this.month = month;
        // this.#day = day;
    }

    printFormat (): string {
        const { year } = this;
        const day = this.#addPadding(this.day);
        const month = this.#addPadding(this.month);
        return `${day}/${month}/${year}`;
    }

    add (amount: number, type: PartOfTheCalendar) {
        if (type === 'day') this.day += amount;
        if (type === 'month') this.month += amount;
        if (type === 'year') this. year += amount;
    }

    #addPadding (value: number) {
        if (value < 10) return `0${value}`;
        return `${value}`;
    }
}

const myDate = new MyDate(2020);
const myDate2 = new MyDate(2021);
console.log({myDate});
console.log(myDate.printFormat());