Index signature
See also Constants, interfaces and types
# Basic usage
The name of the next (eg, id, key) is arbitrary.
interface Foo {
[id: number]: string;
[key: string]: string;
}
# Using a set of literals
type FooKey = 'a' | 'b' | 'c'
type Foo {
[key in FooKey]: string
}