2015-03-13 13 views
11

Ich möchte String-Index der Schnittstelle verwenden.Wie verwendet man indexierte Schnittstelle von Typoskript?

interface IDictionary { 
    [index: string]: string; 
} 
var params: IDictionary; 
params = [{ "heart": "HP" }, { "mana": "MP" }]; 
console.log(params); 

Ich dachte, dies könnte wie MAP wie ein Paar Schlüssel und Wert sein. Ich bin mir nicht sicher, ob das richtig ist.

Antwort

10

Verwenden der Indexer-Grenzen, die für das Objekt mithilfe der Indexsyntax gesetzt oder abgerufen werden können. Z.B. foo abgeleitet ist vom Typ string sein:

interface IDictionary { 
    [index: string]: string; 
} 
var params = {} as IDictionary; 

params['heart'] = 'HP'; // okay 
var foo = params['heart']; // foo:string 

Die folgenden auf der anderen Seite ist ein Fehler, wie sie überprüfen nicht geben wird:

var bar:number = params['heart']; // ERROR 
params['heart'] = 234; // ERROR 

komplette Demo:

interface IDictionary { 
    [index: string]: string; 
} 
var params = {} as IDictionary; 

params['heart'] = 'HP'; // okay 
var foo = params['heart']; // foo:string 


var bar:number = params['heart']; // ERROR 
params['heart'] = 234; // ERROR 
+4

Don‘ t vergessen sie müssen params initialisieren .. 'params = {};' – mjohnsonengr

Verwandte Themen