Objetos
Interfaces
Describen la estructura del objeto, lo que significa que describe cómo debería verse el objeto. En TypeScript, una interfaz solo contiene la definición de métodos y propiedades, no su implementación. Es la funcionalidad de la clase que realiza la conexión entre la interfaz proporcionando la conexión con todos los parámetros de la interfaz.
Ejemplo:
interface Person {
id: number;
name: string;
surname: string;
birthday: Date;
}
const persona1: Person = {
id: 1,
name: 'Jaider',
surname: 'Quintero',
birthday: new Date(1991, 3, 30)
};
console.log(persona1)
Propiedades opcionales
interface Person {
id: number;
name: string;
surname: string;
birthday?: Date;
}
const persona1: Person = {
id: 1,
name: 'Jaider',
surname: 'Quintero',
// birthday: new Date(1991, 3, 30)
};
console.log(persona1)
Clases y herencia
class Persona {
protected nombre:string;
protected edad:number;
constructor(nombre:string, edad:number) {
this.nombre = nombre;
this.edad = edad;
}
imprimir() {
console.log(`Nombre: ${this.nombre}`);
console.log(`Edad: ${this.edad}`);
}
}
class Empleado extends Persona {
private sueldo:number;
constructor(nombre:string, edad:number, sueldo:number) {
super(nombre, edad);
this.sueldo = sueldo;
}
imprimir() {
super.imprimir();
console.log(`Sueldo: ${this.sueldo}`);
}
pagaImpuestos() {
if (this.sueldo>5000)
console.log(`${this.nombre} debe pagar impuestos`);
else
console.log(`${this.nombre} no debe pagar impuestos`);
}
}
const persona1=new Persona('Juan', 44);
persona1.imprimir();
const empleado1=new Empleado('Ana', 22, 7000);
empleado1.imprimir();
empleado1.pagaImpuestos();