This is one of the rare topics that everyone seems to agree upon, because its pretty theoretical rather than applied.
Cruisers and Battleships are too expensive, use the ones you already have but build more sparingly if at all. The bombardment shots are too easy to block and are not first-strike.
Carriers are awesome, the only drawback is that they can take hits (esp from kamikazes and subs) which would render them unable to support planes. Carriers cannot attack but they can permit you to shuttle-stage your fliers (so as many as 4 planes can actually use the carriers on a single turn). The fact that US, UK, Japan and Germany start with copious numbers of planes contributes to this belief. It is actually a good idea to build even more carriers than you can fill with planes, because they can soak hits and provide free landing spaces for non coms and allied fighters.
Destroyers are too pricey, but they are the only cheap ship that blocks movement and sub ambushes. This means you can’t live without them, but that you cannot build your stack out of them either
Subs are tempting, they are the best unit for the price until you consider that their special rules require that you must also have a traditional fleet to support your sub strikeforce, they can never really operate on their own unless your opponent is already suppressed.
Transports full of attack teams cost 14 IPCs, so they are almost as expensive as any two small units or a carrier, highlighting the challenge of playing the US.