Instead of
TSubobjectPtr<USphereComponent> BaseCollisionComponent;
you can now use standard C++ pointers:
USphereComponent* BaseCollisionComponent
In your example, you just forgot the star after USphereComponent. Your FObjectInitializer line looks correct, and should workonce you fix the star.
BaseCollisionComponent = FObjectInitializer.CreateDefaultSubobject<USphereComponent>();
If you’d like to learn more about C++ pointers, take a look at Pointers - C++ Tutorials (specifically the section on declaring pointers).