【问题标题】:how to use string indexed interface of typescript?如何使用打字稿的字符串索引接口?
【发布时间】:2015-05-16 14:05:31
【问题描述】:

我想使用接口的字符串索引。

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

我认为这可能就像 MAP 一样,例如一对键和值。我不确定这是正确的方法。

【问题讨论】:

    标签: arrays interface typescript


    【解决方案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
    

    【讨论】:

    • 别忘了你需要初始化参数..params = {};
    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 2021-08-11
    • 2017-09-02
    相关资源
    最近更新 更多