Can';在Typescript映射中不使用数字作为键?
在课堂上:Can';在Typescript映射中不使用数字作为键?,typescript,dictionary,Typescript,Dictionary,在课堂上: private stuff: Map<number, string> = new Map(); ... this.stuff[aNumber] = "hello"; private stuff:Map=newmap(); ... this.stuff[aNumber]=“你好”; 给出此错误: 元素隐式地具有any类型,因为类型number的表达式不能用于索引类型Map 在类型Map 这对我来说毫无意义。为什么Map不声明带有number类型参
private stuff: Map<number, string> = new Map();
...
this.stuff[aNumber] = "hello";
private stuff:Map=newmap();
...
this.stuff[aNumber]=“你好”;
给出此错误:
元素隐式地具有any
类型,因为类型number
的表达式不能用于索引类型Map
在类型Map
这对我来说毫无意义。为什么
Map
不声明带有number
类型参数的索引签名?这是因为Map
没有使用索引器-它使用的是get/set方法
let foo: Map<number, string> = new Map();
foo.set(2, "something");
let some = foo.get(2);
请看。啊,好的,有趣的选择!我想这是为了解决一些Javascript的问题。当然,如果您要在整个项目中重用它,您可以创建自己的
类型CustomMap={[key:number]:string}
。
let bar: { [key: number]: string } = {};
bar[1] = "some";
bar["sl"] = "some" // error