What's the problem with typedef? It just names a new type rather than making things work differently than you'd expect.
Of course there are reasonable uses for it. Contrary, to the above you might use it to intentionally make an object opaque as a way of abstracting its details from users or when declaring use of int/long in code.