Uma pessoa quer marcar um check-in do PaceUp como favorito. Essa ação deve alterar apenas o estado de favorito, preservando a identidade e os demais dados do check-in.
Complete a função favoritarCheckin, que recebe um objeto do tipo Checkin:
type Checkin = {
id: string;
message: string;
ownerId: string;
favorite: boolean;
};
function favoritarCheckin(checkin: Checkin): Checkin
A função deve retornar um novo objeto com:
favorite igual a true;id, message e ownerId iguais aos valores recebidos.O objeto original deve permanecer intacto. Mesmo quando o check-in já for
favorito, retorne um novo objeto com favorite: true.
Considere este check-in:
const checkin: Checkin = {
id: "ci-10",
message: "Treino concluído!",
ownerId: "user-1",
favorite: false,
};
Ao chamar a função:
const resultado = favoritarCheckin(checkin);
// resultado:
// {
// id: "ci-10",
// message: "Treino concluído!",
// ownerId: "user-1",
// favorite: true,
// }
// O original permanece com favorite: false.
// resultado === checkin deve ser false: são objetos diferentes.
Se o check-in recebido já tiver favorite: true, o retorno também terá
favorite: true. Favoritar não deve desfazer a marcação.
Pratique a criação de um novo objeto e a preservação dos campos que não devem
mudar. Você pode usar o operador spread (...) para copiar as propriedades do
check-in. Observe a ordem das propriedades ao definir o novo valor de
favorite.
Esta atividade trabalha com objetos em memória, sem acesso ao banco de dados.
Mantenha o tipo Checkin, o nome da função e seu parâmetro. Não utilize any
ou console.log: o resultado deve ser devolvido com return.