I liked them as a categorization and conceptual tool, being clear on what was an undead or not for turning purposes was useful. Over time I became really disenchanted with things like the monster racial hd specific mechanics or undead having no con bonus so actually tough death knights were hard to design. I also think there should have been fewer types with more things shoved to subtypes. Animal, beast, magical beast, dragon, and vermin should all be a beast type possibly with subtypes. Humanoid should include humanoids, giants, and monstrous humanoids.
There was a bit of type mischaracterization to get specific mechanical outputs from the type HD calculations in some core monsters, gnolls are humanoids and not monstrous humanoids despite being animal headed furred humanoids, and ropers are not aberrations but magical beasts, because then they get 1/1 BAB instead 3/4, despite being tentacle monsters that are not really animals with magical powers the way magical beasts say they are.
Mechanically I do not care for the all or nothing uses of types for things like ranger favored enemy and bane items. With so many types it is easy enough for many favored enemy choices to be rarely or never relevant.
I got great use out of 3.5 alignment subtypes and over time applied them to more things as a house rule, undead became subtype evil to match up to the detect evil weirdness and then I expanded that to constructs being law, fey being chaos, and planetouched and fiendish/celestials being their accompanying alignment subtype. It was my favorite mechanical use of alignment in any edition of the game.
4e and 5e types were generally improvements on the monster type categories for me but get used for so very little mechanically that it mostly does not matter, similar to alignment. Wildshape being a big exception. Since 3e types got used though they are still what I think of for monsters now even though I run 5e.