Thank you for the helpful response and pointers. I think I need to take my time to sort this out, thanks a lot and I'll come back with a better understanding, hopefully!
I did my homework. Now I'm not so certain about everything, so please take this with a grain of salt.
Typescript's generic functions seem to act like they're contravariant over the type parameter's type bound. I'm not entirely sure though.
// Assignment succeeds with F<unknown> -> F<string>