Oh my I didnt even see that original definition.
Mike is right!
this is not what you want:
UPROPERTY(EditDefaultsOnly, Category=Pickup)
TSubclassOf<class AShooterItem> Item
you want something like this
//non specific item instance
UPROPERTY(EditDefaultsOnly, Category=Pickup)
AShooterItem* Item;
//specific subclass
UPROPERTY(EditDefaultsOnly, Category=Pickup)
AMyFancyShooterItem* FancyItem;
#Now You can Cast
Now you can cast the non-specific Item to a specific sublcass
FancyItem = Cast<AMyFancyShooterItem>(Item);