SóProvas


ID
5474668
Banca
CESGRANRIO
Órgão
Banco do Brasil
Ano
2021
Provas
Disciplina
Programação
Assuntos

Em TypeScript 4, é possível usar o seguinte fragmento de código:

// definir x
const y = (...args: number[]) => args.reduce(x, 0);

Que fragmento de código apresenta uma versão compilável e executável da definição de x que poderia aparecer no lugar do comentário “// definir x” ?

Alternativas
Comentários
  • const y = (...args: number[]) => args.reduce(x, 0);

    reduce() -> Executa uma função redutora para cada elemento de um array. O primeiro argumento é a função, e o segundo é o valor inicial

    "..." -> Operador Spread. No caso da questão, "function(...args)" significa que posso passar N valores avulsos e eles serão "convertidos" em um único array.

      

    Transformando o código em Javascript e sem o Arrow Function ("=>"):

    const y = function(...args) {

              return args.reduce(x, 0);

    }

    O meu x precisa ser uma função. Elimino A e B.

    De acordo com a documentação, o reduce pode passar para a função x os valores de "previousValue" e "currentValue" do meu array args, que são do tipo "number". Logo, não posso ter uma função que recebe parâmetro diferente de number ou que retorne valor diferente de number. Elimino C e D

     

    GAB E

    Se eu chamar y(1,2,3), vai retornar 6. // 1 + 2 + 3