If you're going to have types, don't trick them. No matter how annoying it is to do them properly now, having misleading types will cause someone else a lot more annoyance down the road.
Alternating between passing regular props, destructuring them from params, and sometimes using injected props is very confusing. Stick to one.
mobx allows you to make properties on a store observable, then components you mark as observers react to changes in observables which affect them.