DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.ts💊| #31: Explica este código TypeScript

Explica este código TypeScript

Dificultad: Intermedio

¿Qué esta mal en el siguiente código?

abstract class Auto {
  protected color: string;
  private puertas: number;

  constructor(color: string, puertas = 4) {
    this.color = color;
    this.puertas = puertas;
  }

  abstract logColor(): void;
}

class AutoElectrico extends Auto {
  private carga: number;
  constructor(color: string, carga: number, puertas = 4) {
    super(color, puertas);
    this.carga = carga;
  }
}

Enter fullscreen mode Exit fullscreen mode
  • A. No hay errores, todo funciona bien
  • B. AutoElectrico debe ser una clase abstracta
  • C. SintaxError, no existen los métodos abstractos en TypeScript
  • D. Tenemos que implementar de manera obligatoria el método logColor en la clase AutoElectrico

Respuesta

✅ D. Tenemos que implementar de manera obligatoria el método logColor en la clase AutoElectrico

Cuando creamos un método abstracto debemos asegurarlo si o si de implementarlo en las clases que hereden dicho método.

Para solucionar eso podríamos añandir el método en cuestión a la clase correspondiente:

class AutoElectrico extends Auto {
  private carga: number;
  constructor(color: string, carga: number, puertas = 4) {
    super(color, puertas);
    this.carga = carga;
  }
  // agregar esto soluciona el error
  logColor(){
    console.log("Soy un método abstracto...")
  }
}
Enter fullscreen mode Exit fullscreen mode


Top comments (0)