Should an Interfaced UObject be passed by pointer as an argument in a replicated function?

This wiki page states that: “UObject based classes (or derivatives) should be passed by pointer (*) and will correctly address the version of that object on the receiving client or server (unless that object is not replicated, in which case the pointer will be NULL).”

If I’m passing a UInterface through a replicated function as so:

UFUNCTION(Server, Reliable, WithValidation)
void DoThingOnInterface(TScriptInterface<IMyInterface>);

Is this the proper way to ensure the object that IMyInterface is referring to is replicated? Or do I need to pass it by pointer?

An example of my use case is that the object that this code is on would call DoThingOnInterface and the UObject that implements IMyInterface that is passed into the function does something on all clients.