Union of string and string literals
From this type you can build your union like (string & {}) | “red” | “green” | “blue”, and the compiler will keep this representation long enough to give you IntelliSense hints.
type T = (string & {}) | 'red' | 'blue'