相关疑难解决方法(0)

1761
推荐指数
23
解决办法
82万
查看次数

在打字稿中创建地图

我在打字稿中创建一个地图,如下所示:

let typeMap = new Map();
Run Code Online (Sandbox Code Playgroud)

并设置一个 key: string 值,如下所示:

typeMap.set("key", "value");
Run Code Online (Sandbox Code Playgroud)

我可以通过这样做成功地获得价值:

typeMap.get("key")
Run Code Online (Sandbox Code Playgroud)

但是,我想为映射设置多个键值对,并且设置每个键值会需要太多代码。我尝试这样做:

let typeMap = new Map<string, string>();
typeMap = {
   "key1": "value1",
   "key2": "value2"
   //etc
}
Run Code Online (Sandbox Code Playgroud)

但我越来越

对象文字只能指定已知属性,并且类型“Map”中不存在“key1”

我还尝试了以下方法:

  type typeMap = {
    [key: string]: string
  }
  let typeMap = {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  }
Run Code Online (Sandbox Code Playgroud)

如果我尝试获取这样的静态值:

typeMap["key1"]
Run Code Online (Sandbox Code Playgroud)

有用。但是,我有一个变量必须作为键传递才能获取值,当我尝试执行此操作时:

typeMap[variable]
Run Code Online (Sandbox Code Playgroud)

我越来越:

元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型“{ "key1": string; “key2”:字符串;“key3”:字符串;}'。

在类型 '{ "key1": string; 上找不到参数为 'string' 类型的索引签名 “key2”:字符串;“key3”:字符串;}'

typescript

5
推荐指数
1
解决办法
1万
查看次数

从 json 对象初始化 Typescript 中的 Map&lt;string,string&gt;

我在 Typescript 中有一个包含地图的类:

public map:Map<string,string>;
constructor() {
  let jsonString = {
    "peureo" : "dsdlsdksd"
  };
  this.map = jsonString;
}
Run Code Online (Sandbox Code Playgroud)

问题是初始化不起作用。

jsonString是我将从序列化为 Json 的 Java 对象收到的东西。

有人可以帮忙吗?谢谢!

javascript json initialization typescript

4
推荐指数
1
解决办法
3万
查看次数