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);
- 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
✅ - C. Los modificadores de acceso en TypeScript son 3: En este caso, Respuesta
En Auto: cambiar color de private a protected
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.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)