I sometimes see domain objects or enums named with a suffix of “Type”, such as ‘ItemType’ or ‘PermissionType’.
The word is so general and non-specific, I wonder if it is being used more often that it should be.
Are class names like these often produced due to a lack of effort to come up with a more meaningful signifier, or is “Type” really the only option in many cases?
When used on a class, it’s usually wrong: PermissionType would mean “type for Permissions”. It should be just “Permission”
However, I do often see it used on enums — when the enum is a list of types. i.e. PermissionType does not mean “type for Permissions ” but “enum of Permissions types”. This would be legitimite.