Typ kann nicht verwendet werden, als ein index-Typ
Gehen https://www.typescriptlang.org/play/index.html und einfügen:
let userTypes = {};
let keys = Object.keys[userTypes];
Fehlermeldung:
error TS2538: Type '{}' cannot be used as an index type.
Warum?
InformationsquelleAutor Eu Insumi Prunc | 2016-12-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Object.keys
gibt ein array der Eigenschaften. Sie können nicht index ein array mit einem Objekt; Sie müssen eine Zahl zu repräsentieren, der offset vom Anfang des Arrays.Als gleichwertig Beispiel, was erwarten Sie von diesem code zu tun?:
Ist es unsinnig.
Bearbeiten:
Nach dem Lesen des OP ' s Kommentare und sieht dann der code wieder merkte ich, dass meine Einschätzung falsch war. Während eine problem ist, dass der original-code, der versucht, den index der
keys
Funktion mit einem Objekt-literal, das wirkliche Problem ist die Verwendung von eckigen Klammern statt Runden Klammern. Dies funktioniert:Ruft es
keys
mituserTypes
anstelle von index.Jetzt sehe ich die peinliche Tippfehler... Danke...
Sollte
Object.keys(userTypes)
In der Realität, dass ich tatsächlich falsch verstanden, die code. Ich dachte, Ihr problem war einfach die Tatsache, Sie waren die Indizierung mit einem
{}
, die es in der Art, da Sie versuchen, den index derkeys
Funktion mit dem Objekt-literal. Du hast Recht aber, dass das eigentliche problem ist die falsche Verwendung von eckigen Klammern. Ich werde aktualisieren, meine Antwort.Ich würde erwarten, dass es äquivalent zu
{ '[object Object]': undefined }[ {} ]
.InformationsquelleAutor Carcigenicate