Classes
Forma abreviada
export class Computadora {
// Solo se utiliza el constructor
constructor(
public readonly id: number, // con readonly no se puede modificar
public nombre: string,
public precio: number,
public marca?: string // opcional
) {}
}
export const pc = new Computadora(2, "HP", 1000);
pc.id = 20; // no se puede modificar
pc.nombre = "HP Victus"; // si se puede modificar
Forma normal
// definicion de la clase
export class Producto {
// propiedades
public id: number;
public nombre: string;
// constructor
// se inicializa y ejecuta cuando se crea una instancia de la clase
constructor(id: number, nombre: string) {
console.log("constructor de la clase");
this.id = id;
this.nombre = nombre;
}
}
export const telefono = new Producto(1, "Nokia");
Getters
- Se utiliza para obtener un valor
- El valor se puede generar dentro de la clase
export class Telefono {
constructor(
public readonly id: number,
public nombre: string,
public modelo?: string
) {}
// getter ---------------------------------------------------
get imageUrl(): string {
return `https//tienda.com/${this.id}.jpg`;
}
export const tel = new Telefono(3, "Samsung");
console.log(tel.imageUrl); // getter
Métodos
- Funciones dentro de la clase
- Por defecto todas son public
export class Telefono {
constructor(
public readonly id: number, // no se puede modificar
public nombre: string,
public modelo?: string // opcional
) {}
get imageUrl(): string {
return `https//tienda.com/${this.id}.jpg`;
}
// metodos ------------------------------------------------------
descuento() {
console.log("descuento!!!!!!!!!");
this.calcularImpuestos(); // usar metodo privado
}
// solo se puede utilizar dentro de la clase
private calcularImpuestos() {
console.log("calcular impuestos!!!!!!!!");
}
}
export const tel = new Telefono(3, "Samsung");
tel.descuento(); // metodo
//tel.calcularImpuestos(); // metodo privado