尝试访问TypeScript词典时出现“不支持的索引器”

时间:2018-12-14 01:38:23

标签: typescript

我正在尝试在TypeScript中进行Minecraft MakeCode扩展,并且需要字典来将字符串映射到相应的字符串:

const chars:{[index:string]:string} = {
  "A": "MSOJOQJ",
  "B": "JWIQWIQ"
  // ...
};

但是,当我尝试查找字典的值时:

let look = chars["A"];

TypeScript抛出一个错误,它是unsupported indexer

设置字典的键值对也不起作用:

chars["C"] = "HIHWQHQ"; // unsupported indexer

我的代码中是否存在任何错误,或者TypeScript是否错误/过于严格?

1 个答案:

答案 0 :(得分:0)

进一步研究MakeCode环境后,似乎它不支持映射类型的字典索引器,但确实支持点访问:

const dicto: { [key: string]: string } = {
    hello: "world",
    goodbye: "friends",
};

dicto["hello"] = "wow!"; // error
const b = dicto["goodbye"]; // error

dicto.hello = "wow!"; // ok
const c = dicto.goodbye; // ok, c inferred to be of type string