陣列 - 如何使用 TypeScript 的字串索引介面?
我想使用介面的字串索引。
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
