这个答案表明声明一个强制执行number
键的地图是有效的.
但是,当我在操场上尝试以下操作时,出现错误.
class Foo
{
stringMap: { [s: string]: string; } = {};
numberMap: { [s: number]: string; } = {};
}
Run Code Online (Sandbox Code Playgroud)
numberMap
生成以下编译器错误:
无法转换
'{}'
为'{ [s: number]: string; }'
:类型的索引签名'{}'
并且'{ [s: number]: string; }'
不兼容{}
宣布这个的正确方法是什么?
Rya*_*ugh 10
我不是100%确定这是否是一个错误(我需要检查规范),但这样做可以解决这个问题:
class Foo
{
stringMap: { [s: string]: string; } = {};
numberMap: { [s: number]: string; } = <any>{};
}
Run Code Online (Sandbox Code Playgroud)
如果某些东西是可编号的,你通常会使用[]
而不是{}
,但这显然取决于你.
归档时间: |
|
查看次数: |
10132 次 |
最近记录: |