Skip to content

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();