Given an interface of known keys and values, is it possible to tell TypeScript that I want to have a type that has all the same keys of my original interface with value types extended via union of the original type and another type. Pseudo (sadly non-functional) TypeScript code that describes the desired behaviour:
type FancyCSSObject = { [key: keyof CSSObject]: CSSObject[key] | OtherType };
The above is not valid TypeScript, so my question is, how to express this in valid TypeScript code?