我正在使用 Typescript 并将一个小型库从 Javascript 转换为它。在代码的一个区域中,有一个静态定义的友好键名与其键码的映射。原始代码如下所示:
keys: { "Backspace": 8, "Tab": 9, "Enter": 13, ....etc.. };
我通过以下方式在打字稿中定义了这个:
static keys: { [name: string]: number; } = { "Backspace": 8, "Tab": 9, "Enter": 13, ... etc.. };
这似乎工作正常,但是代码的另一部分使用相反的映射:
chars: {8:"Backspace",9:"Tab",13:"Enter", ...etc... };
因此,我尝试在 typescript 中进行与之前相同类型的定义:
chars: { [code: number]: string; } = { 8: "Backspace", 9: "Tab", 13: "Enter", ...etc.. };
这无法编译并出现以下错误:
无法转换'{ 0:字符串;1:字符串;2:字符串;4:字符串;8:字符串;9:字符串;: 细绳; }' 到 '{ [name: number]: string; }': '{ 0: string; 类型的索引签名 1:字符串;2:字符串;4:字符串;8:字符串;9:字符串;: 细绳; }' 和 '{ [name: number]: string; }' 不兼容
如何在 Typescript 中定义此映射?