как использовать строковый индексированный интерфейс машинописного текста?

Я бы хотел использовать индекс строки интерфейса.

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

Я думал, что это может быть как MAP, например пара ключей и ценность. Я не уверен, что это правильный подход.

Ответ 1

Использование ограничений индексатора, которые можно поместить или выбрать для объекта с помощью синтаксиса индекса. Например, foo определяется как string типа:

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

Полная демонстрация:

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