Was bedeutet eigentlich eine TypeScript-Indexsignatur?

Ich habe eine Weile TypeScript geschrieben und bin verwirrt darüber, was eine Indexsignatur bedeutet. Dieser Code ist beispielsweise legal: function fn(obj: { [x: string]: number }) { let n: number = obj.something; } Aber dieser Code, der im Grunde das Gleiche tut, ist nicht: function fn(obj: { [x:...