Solución

@estouchedisindo·21/5/2026TypeScript
solution.tsTypeScript
export function calcArea(type: 'circle' | 'rect', ...dims: number[]): number {
  // Usa la clase abstracta Shape y sus subclases para calcular el área
  abstract class Shape {
    abstract area(): number;
  }

  class Circle extends Shape {

    private radius: number;

    constructor( radio: number) {
      super()
      this.radius = radio;
    }

    area() {
      return Math.PI * this.radius ** 2;
    }
  }

  let area = 0;

  class Rect extends Shape {

    private width: number;
    private height: number;

    constructor( ancho: number, altura: number) {
      super()
      this.width = ancho;
      this.height = altura;
    }
  
    area() {
      return this.width * this.height;
    }
  }

  if( type === 'circle') {
    const [radio] = dims;
    const newCircle = new Circle(radio);
    area = newCircle.area();
  }

  if( type === 'rect') {
    const [ancho, altura] = dims;
    const newCircle = new Rect(ancho, altura);
    area = newCircle.area();
  }

  return Number( area.toFixed(2) );
}
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.