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 ColorMap {
[period: TColorKey]: Color;
}
This throws the error: An index signature parameter type must be 'string' or 'number'.
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 };
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With