Olá Davi, tudo bem?
O spread operator é um recurso muito útil do JavaScript, que permite que você faça uma cópia de um objeto ou array e adicione novas propriedades ou elementos. No caso do seu código, o spread operator está sendo utilizado para fazer uma cópia do objeto 'livro' e adicionar uma nova propriedade 'preco', que é calculada a partir do preço original do livro e de um desconto.
O operador funciona da seguinte maneira: ao utilizar os três pontos antes do objeto ou array que você deseja copiar, o JavaScript entende que deve criar uma nova referência para esse objeto ou array, ou seja, uma cópia. Em seguida, você pode adicionar novas propriedades ou elementos a essa cópia, como no exemplo que você mostrou.
No seu caso, o parâmetro 'livro' é simplesmente o objeto que está sendo passado como argumento para a função map. Já o 'preco' é uma nova propriedade que está sendo adicionada à cópia do objeto 'livro', e que é calculada a partir do preço original do livro e de um desconto.
Com base no array de livros que você tem, o spread operator irá criar uma nova cópia de cada objeto 'livro' e adicionar a nova propriedade 'preco' calculada a partir do desconto informado.
Espero ter ajudado.
Um abraço e bons estudos.