如何使用打字稿的字符串索引接口?
how to use string indexed interface of typescript?
我想使用接口的字符串索引。
interface IDictionary {
[index: string]: string;
}
var params: IDictionary;
params = [{ "heart": "HP" }, { "mana": "MP" }];
console.log(params);
我以为这可能是像MAP这样的一对key和value。我不确定这是正确的方法。
使用索引器限制可以使用索引语法为对象放置或提取的内容。例如。 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
我想使用接口的字符串索引。
interface IDictionary {
[index: string]: string;
}
var params: IDictionary;
params = [{ "heart": "HP" }, { "mana": "MP" }];
console.log(params);
我以为这可能是像MAP这样的一对key和value。我不确定这是正确的方法。
使用索引器限制可以使用索引语法为对象放置或提取的内容。例如。 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