https://www.w3schools.com/js/js_class_intro.asp
https://code.tutsplus.com/tutorials/typescript-for-beginners-part-4-classes–cms-29565
// Definición de la clase. En este caso definimos como tiene que ser una 'Person'
// Pero la clase NO ES una 'Person'
class Person {
name: string;
constructor(theName: string) {
this.name = theName;
}
introduceSelf() {
console.log("Hi, I am " + this.name + "!");
}
}
// Para crear objetos de la clase 'Person' debemos usar 'new'
// Instanciar una clase. Al usar new estamos llamando al método reservado 'constructor'
let anna:Person=new Person('Anna');
// ¿Qué valor tiene el name de anna? 'Anna'
anna.introduceSelf()
console.log(anna.name)
let john:Person=new Person('John Pi')
john.introduceSelf()
class Simple {
a:string='a'
b:string='b'
}
let foo:Simple=new Simple()
class Producto {
nombre:string
precio:number
constructor(nombreProd:string,precioProd:number){
this.nombre=nombreProd;
this.precio=precioProd
}
precioConIva(){
return this.precio*1.21
}
}
let botijo:Producto=new Producto('Botijo',100)
let gaita:Producto=new Producto('Gaita',150)
console.log(botijo.precioConIva())
console.log(gaita.precioConIva())
¿Seríais capaces de añadir a Producto una función precioConDescuento que nos devuelva el precio con un 10% de descuento? ¡Seguro que sí!