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)