To catch possible typos and speed up development with intelligent autocompletion, I created some complex types to help the compiler and IDE to understand the code.

The screenshot above shows which data needs to be transformed into a string literal type

The screenshot above shows the result of the type, this may look complex and overcomplicated but it is very useful to have autocompletion and avoid any typos. The hardest part was to get typescript not making a type with all possible combinations of the data.

The screenshot above show the autocompletion you get in your IDE. As you might expected, any typos will result in an build error.