Wrapping the arguments or result of an anonymous function

I want to reassign an anonymous function to add to what it does. I’m basically looking the below functionality.

let f1 = (x: number) => x + 100;
// f1 = (x: number) => f1(x) + 20; // becomes recursive -> stack overflow, not what I want
f1(3) // 123

The two options I see are either 1. wrapping the argument or 2. somehow wrapping the result. The first option seems easier but I’m not sure how to accomplish it (or if what I’m asking for is impossible).