Médio TypeScript
Soma com número variável de argumentos
Enunciado
Crie uma função somar que aceita qualquer quantidade de números e retorna a soma deles. Use rest parameters e tipagem adequada.
Requisitos
- A função deve usar
...numeros: number[]. - Deve retornar um
number. - Se nenhum número for passado, deve retornar
0.
Código inicial
function somar(...numeros: number[]): number {
// Seu código aqui
}
Saída esperada
10
0
6
Ver dica
Use reduce para acumular a soma, começando com 0.
Mostrar solução
function somar(...numeros: number[]): number {
return numeros.reduce((acc, n) => acc + n, 0);
}
console.log(somar(1, 2, 3, 4));
console.log(somar());
console.log(somar(1, 2, 3));
Passo a passo
- Declaramos
somarcom rest parameter...numeros: number[], que agrupa todos os argumentos em um array de números. - O tipo de retorno é
number. - Usamos
reducepara somar todos os elementos, iniciando com0. - Chamamos a função com diferentes quantidades de argumentos, incluindo nenhum.
- Exibimos os resultados.
Por que funciona
O rest parameter permite que a função receba zero ou mais argumentos. O array resultante é tipado como number[], então o reduce opera com segurança. O valor inicial 0 garante que a soma de nenhum número seja 0.
Erros comuns
- Esquecer o valor inicial do
reduce:numeros.reduce((acc, n) => acc + n)– se o array estiver vazio, lança erro. - Tipar o rest como
...numeros: number(sem colchetes) – erro de sintaxe. - Tentar passar strings:
somar("1", "2")– erro de tipo.
Outra forma de resolver
Usar um loop for...of:
function somar(...numeros: number[]): number {
let total = 0;
for (const n of numeros) total += n;
return total;
}
Saída esperada
10
0
6