An union type is the C attempt to implement something like sum types, that other languages extend a bit to literally implement sum types.
Those two words live on different contexts, as unions are about a memory usage pattern, and sum types are about conceptual software design, but they often go together on the same language feature.
> An union type is the C attempt to implement something like sum types
Sum types, unions (in the C sense), and union types are three distinct concepts.
Wikipedia's article confusingly merges the latter two concepts together but they're different thing. TypeScript[1] and Scala[2] have union types, but they have nothing like C's notion of "unsafely reuse the same bits in memory to be interpreted as different things".
Those two words live on different contexts, as unions are about a memory usage pattern, and sum types are about conceptual software design, but they often go together on the same language feature.