ParameterType was replaced with SpecTypeId.
I believe your issue is that you want to get the storage type without accessing an element with that parameter. Similar to TypeOfStorage for BIPs?
For parameters that are shared (bound in project or in family) or non-shared project parameters you can get the ParameterElement object. For shared parameters you can use SharedParameterElement.Lookup. There is no alternative to SharedParameterElement.Lookup for non-shared project parameters so you have to filter for ParameterElements and find the one you want by name. Since ParameterElement is the base class to SharedParameterElement it is important to rule out SharedParameterElements when filtering for ParameterElements. I believe you can use a class filter for the base class combined with an inverted one for SharedParameterElement. This is important for when your shared parameters have the same names as some of your non-shared ones. As developers we can't rule out that possibility.
Once you have this associated ParameterElement you cannot get the StorageType from that directly but you can get the SpecTypeId via ParameterElement.GetDefinition.GetDataType (which can then can be used to find the StorageType via my original link).
It is important to note also that Definition.GetDataType may return a SpecTypeId that represents a category (in the case of parameters representing a family type). To rule such out you should use SpecUtils.IsSpec.
The only type of parameter this will not work for is non-shared family parameters and built-in parameters (since neither have a ParameterElement). So in the end the only type of parameter you will not be able to find the storage type of without first getting an instance of that parameter is the non-shared family parameter.