Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';在Typescript映射中不使用数字作为键?_Typescript_Dictionary - Fatal编程技术网

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