Clases y Objetos en TypeScript

Definición de Clases

En TypeScript, una clase es una plantilla para crear objetos que comparten las mismas propiedades y métodos. Se define utilizando la palabra clave class.

Aquí tienes un ejemplo básico:
typescript
class Vehiculo {
  marca: string;
  modelo: string;

  constructor(marca: string, modelo: string) {
      this.marca = marca;
      this.modelo = modelo;
  }

  mostrarInfo() {
      console.log(`Vehículo: ${this.marca} ${this.modelo}`);
  }
}

Propiedades y Métodos

  Correcto

  • Las clases pueden tener propiedades (variables) y métodos (funciones).
  • Las propiedades se definen en la clase y se pueden inicializar en el constructor.
  • Los métodos se pueden utilizar para realizar acciones específicas.

Aquí tienes un ejemplo que incluye propiedades y métodos:

typescript
class Persona {
  nombre: string;
  edad: number;

  constructor(nombre: string, edad: number) {
      this.nombre = nombre;
      this.edad = edad;
  }

  saludar() {
      console.log(`Hola, soy ${this.nombre} y tengo ${this.edad} años.`);
  }
}

const persona1 = new Persona("Carlos", 30);
persona1.saludar(); 
// Salida: Hola, soy Carlos y tengo 30 años.

Herencia y Modificadores de Acceso

La herencia permite a una clase heredar propiedades y métodos de otra clase. En TypeScript, puedes usar la palabra clave extends para crear una clase que herede de otra. Los modificadores de acceso (public, private, protected) controlan la visibilidad de las propiedades y métodos.

typescript
class Animal {
  protected nombre: string;

  constructor(nombre: string) {
      this.nombre = nombre;
  }

  hacerSonido() {
      console.log(`${this.nombre} hace un sonido.`);
  }
}

class Perro extends Animal {
  ladrar() {
      console.log(`${this.nombre} ladra.`);
  }
}

const miPerro = new Perro("Rex");
miPerro.hacerSonido(); // Salida: Rex hace un sonido.
miPerro.ladrar();      // Salida: Rex ladra.
  Advertencia

Las clases en TypeScript son una forma poderosa de organizar y estructurar tu código, permitiendo la reutilización a través de la herencia y el encapsulamiento mediante modificadores de acceso.