2015-03-13 12 views
11

Chciałbym użyć indeksu łańcucha interfejsu.jak korzystać z indeksu ciągów maszynopisów?

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

Pomyślałem, że może to być MAPA, na przykład para kluczy i wartość. Nie jestem pewien, czy to jest właściwe podejście.

Odpowiedz

10

Korzystanie z indeksu ogranicza to, co można umieścić lub pobrać dla obiektu, używając składni indeksu. Na przykład. foo jest wywnioskować być typu string:

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

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

Poniżej natomiast jest błędem, ponieważ nie będzie typ kontroli:

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

Kompletna 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 zapomnij o inicjalizacji paramów. 'params = {};' – mjohnsonengr