我是使用 TypeScript 的新手,我正在尝试实现 hashmap/dictionary 接口。到目前为止我有
export interface IHash {
[details: string] : string;
}
我在理解这种语法的确切含义时遇到了一些麻烦。如果我要做 var x : IHash = {};
我将如何添加/访问数据?
原文由 mysticalstick 发布,翻译遵循 CC BY-SA 4.0 许可协议
我是使用 TypeScript 的新手,我正在尝试实现 hashmap/dictionary 接口。到目前为止我有
export interface IHash {
[details: string] : string;
}
我在理解这种语法的确切含义时遇到了一些麻烦。如果我要做 var x : IHash = {};
我将如何添加/访问数据?
原文由 mysticalstick 发布,翻译遵循 CC BY-SA 4.0 许可协议
最简单正确的方法是使用 Record type Record
const myVar : Record<string, string> = {
key1: 'val1',
key2: 'val2',
}
原文由 aWebDeveloper 发布,翻译遵循 CC BY-SA 4.0 许可协议
就像一个普通的 js 对象:
你正在做两件事
[indexer: string] : string
您可以使用
[key: string]: any;
制作具有显式类型字段的通用字典例如
age
必须是number
,而name
必须是字符串 - 两者都是必需的。任何隐式字段都可以是任何类型的值。作为替代方案,有一个
Map
类:这允许您将任何对象 _实例_(不仅仅是数字/字符串)作为键。
虽然它相对较新,但如果您针对旧系统,您可能需要对其进行 polyfill。