Solución
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