DEV Community

Cristian Fernando
Cristian Fernando

Posted on

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

Explica este código TypeScript

Dificultad: Intermedio

¿Cuál es la manera de arreglar este código?

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

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

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

  get getColor() {
    return this.color; //❌ Property 'color' is private and only accessible within class 'Auto'
  }
}

const car = new AutoElectrico("rojo", 5000);
console.log(car.getColor); 
Enter fullscreen mode Exit fullscreen mode
  • A. En Auto: cambiar color y puertas de private a public
  • B. En AutoElectrico: eliminar la sentencia super()
  • C. En Auto: cambiar color de private a protected
  • D. En AutoElectrico: cambiar extends por implements
  • E. Ninguna de las anteriores

Respuesta

✅ - C. En Auto: cambiar color de private a protected

Los modificadores de acceso en TypeScript son 3: public (por defecto), private y protected.

  • public significa que cualquier propiedad o método puede ser accedido fuera de la clase que lo contiene.
  • private significa que la propiedad o método solo puede ser accedido desde la clase que lo contiene.
  • protected: significa que la propiedad o método puede ser accedido desde la clase que lo contiene pero también desde las clases que lo hereden.

En este caso, AutoElectrico hereda de Auto, entonces para poder usar color desde AutoElectrico basta con escribir la propiedad como protected.


Puedes ver el último reto acá:

Top comments (0)