Ich versuche, ein Wörterbuch mit Objekten als Schlüssel zu haben:Wie kann ich ein Wörterbuch mit Objekten als Schlüssel haben?
api: {[key: string]: string} = {
getItems: 'api/v1/items/all'
};
Wenn ich versuche, es zu benutzen var urlpath = api.getItems;
ich:
Property 'getItems' existiert nicht auf Typ ‚{[key : string]: string; ` }.
Wenn ich den Schlüssel des Typs jeder {[key: any]: string}
zu ändern, die ich erhalten:
Ein Index Signaturparametertyp ‚string‘ sein muss, oder ‚Zahl‘.
ich es so verwenden können, aber das ist nicht das, was ich will:
var urlpath = api['getItems'];
Wie kann ich ein Wörterbuch haben Objekte als Schlüssel verwenden?
Sie müssen eine Schnittstelle oder Klasse mit allen Parametern erstellen, die sie haben soll, einschließlich getItems. Dann deklarieren Sie api als Objekt dieses Typs.Wenn Sie die Art deklarieren, wie Sie es jetzt tun, wird Typescript es nicht verstehen, weil es keine Schnittstelle hat – iberbeu
@iberbeu Ihr Vorschlag funktioniert, obwohl es schön wäre, die Schnittstelle nicht zu benötigen. Wissen Sie jetzt, warum Typesrcpt das nicht versteht? – cfischer
Weil es eine typisierte Sprache ist. Das bedeutet, dass Sie für jedes Objekt immer eine Schnittstelle definieren müssen. Das ist genau das, wonach Sie suchen, wenn Sie zu Typoskript wechseln. Wenn Sie versuchen, so zu schreiben, wie Sie es gemacht haben, erhalten Sie eine Fehlermeldung. Wenn Sie es immer noch so machen wollen, sollten Sie das Typoskript weggeben und direkt mit JS arbeiten. – iberbeu