2016-07-05 1 views
1

Ich möchte auf einen Wert in einem Objekt/Wörterbuch als myDictionary.SOME_VALUE verweisen können. Kann dies auf eine Weise geschehen, bei der ich keinen Typ für das Objekt angeben muss, der im Voraus jeden Eigenschaftswert auflistet? wenn dies ein Wörterbuch mit String-Schlüsseln war, ich weiß zum Beispiel, dass die SyntaxGeben Sie für beliebige nicht aufgeführte Eigenschaftsnamen im TypeScript-Objekt ein?

var myDictionary : {[id:string]:number} = {'a':1, 'b':2} 
ist

Gibt es eine Möglichkeit, einen Typen zu definieren, die Sie mir folgende

var myDictionary = {a:1, b:2} 

für beliebigen unquoted tun können Eigenschaftsnamen, ohne dass eine explizite Schnittstelle/Typdefinition benötigt wird (zB: type myDictType = {a:number, b:number})?

Antwort

2
var myDictionary : {[id:string]:number} = {a:1, b:2} compiles just fine. 

Aber

myDictionary.a nicht der Fall, weil die Typoskript Schöpfer Wörterbuch Zugriff auf wirklich Blick wie Sie verwenden einen dynamischen Schlüssel gesucht.

Der einzige Typ, der Ihnen den Zugriff auf beliebige Eigenschaften ohne Klammernotation ermöglicht ... ist leider any.

+0

Hinweis: Mit TS 2.1 können Sie auch Record verwenden, obwohl Records einen präziseren Satz von Schlüsseln enthalten sollten. Dies ist praktisch und einfacher zu lesen. – AlexG

Verwandte Themen