Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

Alternativa "a" e alternativa "c" parecem conter o mesmo código

Me parece ser o mesmo, nas 2 alternativas...

Alternativa A:

class CalculadorDeArea {
    static calcula(...areas: AreaCalculavel[]): number {
        return areas.reduce((total, area) => total + area.calculaArea(), 0);
    }
}

const quadrado = new Quadrado(30);
const retangulo = new Retangulo(50, 30);
const circulo = new Circulo(20);

const total = CalculadorDeArea.calcula(quadrado, retangulo, circulo);
console.log(total);

Alternativa B:

class CalculadorDeArea {
    static calcula(areas: AreaCalculavel[]): number {
        return areas.reduce((total, area) => total + area.calculaArea(), 0);
    }
}

const quadrado = new Quadrado(30);
const retangulo = new Retangulo(50, 30);
const circulo = new Circulo(20);

const total = CalculadorDeArea.calcula(quadrado, retangulo, circulo);
console.log(total);
1 resposta
solução!

Encontrei a diferença depois de ler os códigos varias vezes, tentei apagar o tópico mas não encontrei essa opção. O que não me atentei no código foi o REST OPERATOR ...

Alternativa A: static calcula(...areas: AreaCalculavel[]):

Alternativa B: static calcula(areas: AreaCalculavel[]):