En nuestro caso deberia ser “Bob the Constructor”
Introducción
¿Ya tomaste el Curso de TypeScript: Tipos Avanzados y Funciones?
Fundamentos de POO
Class
Métodos
Acceso público
Acceso privado
Constructor
Getters
Setters
POO Avanzada
Herencia
Acceso protegido
Static
Interfaces
Clases abstractas
Singleton: constructor privado
Asincronismo y consumo de APIs
Promesas
Tipando respuestas HTTP
Proyecto: migración de funciones a clases
Consumiendo ProductMemoryService
ProductHttpService
Consumiendo ProductHttpService
Genéricos
Generics
Generics en clases
Generics en métodos
Decoradores
Próximos pasos
¿Quieres más cursos de TypeScript?
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 3
Preguntas 1
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. 😄
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.
TypeScript nos ayuda con las clases.
class ClassName {
property1: dataType;
propertyN: dataType;
constructor (property1: dataType, propertyN: dataType) {
this.proterty1 = property1;
this.protertyN = propertyN;
}
}
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
}
}
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
}
}
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());
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.