extend an implicit argument's type without a new variable
No, whether the type was inferred or explicit, TypeScript will consider any extra property as a potential typo.
"Workarounds" are indeed re-typing (type assertion) or making a new variable, which explicitly say to TypeScript that the extra members are intentional.
This may look like a hindrance for seasoned JavaScript developers, for whom freely adding new properties is a very common practice.
This is one of the few situations where TypeScript does force you to code things quite differently than in plain JS.
Here it is more like an annoyance than a critical limitation, as the workaround is quite simple (BTW, in JS you could have used forEach instead, since you "rework" items, whereas map already points semantically to the TS solution, as explained by GuerricP's answer).
You can see it as the price to pay for type explicitness.
person.nametonewPerson.name?return { ...person, name: '${person.firstName} ${person.lastName}'}?