Type aliases simply provide another name for a type. While they can be helpful for shortening long names, disambiguating name collisions, and writing cross-platform code, when misused they can make code significantly more difficult to understand.
Type aliases should only be introduced where it is practical and unambiguous to do so.