Haxe has a really elegant solution to this in the form of Abstracts[0][1]. I wonder why this particular feature never became popular in other languages, at least to my knowledge.
0 - https://code.haxe.org/category/abstract-types/color.html
1 - https://haxe.org/manual/types-abstract.html