...and where is it documented?
I\'ve seen examples like this around the place:
class MyThing {
private _layers: { [id: string] : SimpleLayer } = {
TypeScript Walkthrough: Interfaces
See the section "Describing an Indexable Object". This is called an index signature.
The syntax for defining the index is:
[Identifier: KeyType]: ValueType
KeyType
can be either string
or number
.
You could claim that the Identifier
isn't really needed since it doesn't get used anywhere, but I think it's required in order to force the class/interface designer to indicate what the hash map key should represent (an id, name, e-mail address, etc.). This also provides the possibility of having intellisense show the hash key name (as Visual Studio does for other languages), though I don't think Typescript intellisense currently provides this.