Get keys of a Typescript interface as array of strings
Creating an array or tuple of keys from an interface with safety compile-time checks requires a bit of creativity. Types are erased at run-time and object types (unordered, named) cannot be converted to tuple types (ordered, unnamed) without resorting to non-supported techniques.
https://stackoverflow.com/questions/43909566/get-keys-of-a-typescript-interface-as-array-of-strings