【发布时间】:2014-10-22 22:52:35
【问题描述】:
我正在使用 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: string; 1:字符串; 2:字符串; 4:字符串; 8:字符串; 9:字符串; : 细绳; }' 到 '{ [name: number]: string; }': '{ 0: string; 类型的索引签名1:字符串; 2:字符串; 4:字符串; 8:字符串; 9:字符串; : 细绳; }' 和 '{ [name: number]: string; }' 不兼容
如何在 Typescript 中定义这个映射?
【问题讨论】:
标签: typescript