Is there any way to define a typescript literal type which can be used as a string key in an indexer?
type TColorKey = \'dark\' | \'light\';
interface Color
Yes, it is possible thanks to a new feature called Mapped types. Just make sure you're using nightly version of typescript compiler (typescript@next
) because it's not in stable build yet (at the time I'm writing this).
type TColorKey = "dark" | "light";
type TColorMap = { [P in TColorKey]: Color };