Now (2021) TSubobjectPtr it’s definitely deprecated and it gives you errors in the console, so you can’t use it. The solution with Unreal 4.27 was to set the UPROPERTY VisibleDefaultsOnly(or higher) and BueprintReadOnly(or higher), in my case I used BlueprintReadWrite because I need to interact with the component in blueprints.
UPROPERTY(VisibleDefaultsOnly, BlueprintReadWrite, Category="Door Component")
class USkeletalMeshComponent *DoorRunic;
You NEED to delete the blueprint and recreate it from the C++ class if you previously created with the wrong properties because it doesn’t refresh!
I wasted so much time on this and I hope I could help someone else!