我不熟悉使用TypeScript,我正在try 实现一个hashmap/字典接口.到目前为止我有

export interface IHash {
    [details: string] : string;
} 

我很难理解这个语法的确切含义.如果我要做var x : IHash = {};,我将如何添加/访问数据?

推荐答案

就像普通的js对象一样:

let myhash: IHash = {};   

myhash["somestring"] = "value"; //set

let value = myhash["somestring"]; //get

有两件事你要用[indexer: string] : string

  • 告诉TypeScript对象可以有任何基于字符串的键
  • 对于所有键条目,值必须是字符串类型.

enter image description here

您可以使用[key: string]: any;创建一个包含显式类型字段的通用字典

enter image description here

e、 g.age必须是number,而name必须是字符串-两者都是必需的.任何隐式字段都可以是任何类型的值.

另一种 Select 是Map级:

let map = new Map<object, string>(); 

let key = new Object();

map.set(key, "value");
map.get(key); // return "value"

这允许您将任何对象instance(不仅仅是数字/字符串)作为键.

虽然它相对较新,所以如果你瞄准旧系统,你可能不得不多填充它.

Typescript相关问答推荐

Typescript联合类型-字段类型覆盖

如何根据服务响应构建子路由

如何在类型脚本中使用条件陈述循环

类型脚本不会推断键的值类型

VS代码1.88.0中未出现自动导入建议

为什么TypeScript失go 了类型推断,默认为any?''

基于键的值的打字动态类型;种类;

使某些(嵌套)属性成为可选属性

类型{}上不存在属性&STORE&A;-MobX&A;REACT&A;TYPE脚本

如何在TypeScrip中从字符串联合类型中省略%1值

有条件地删除区分的联合类型中的属性的可选属性

TypeScrip省略了类型参数,仅当传递另一个前面的类型参数时才采用默认类型

TypeScrip:来自先前参数的参数中的计算(computed)属性名称

如何在react组件中使用doctype和html标签?

从泛型类型引用推断的文本类型

如何在Angular /字体中访问API响应的子元素?

如何避免多个类型参数重复?

我的类型谓词函数不能像我预期的那样工作.需要帮助了解原因

如何在TypeScript中描述和实现包含特定属性的函数?

如何将 MUI 主题对象的自定义属性与情感样式组件中的自定义props 一起使用?