我试图将枚举映射到字符串:
enum Status {
NEW = "NEW",
INPROCESSING = "IN PROCESSING",
DONE = "DONE"
};
const statusToColor: { [key in Status ]: string } = {
"NEW": "blue",
"IN PROCESSING": "yellow",
"DONE": "green"
}
到目前为止,一切都很好。 但是当我尝试:
编辑:似乎我把问题简化了很多,因为实际问题似乎仍然在其他地方:
当我尝试输入" statusToColor"时,只会发生没有索引错误。来自数组,如下:
const statusArrayToColors = (statusArray: Status[]): string[] => {
return statusArray.map(status => statusToColor[status])
}
在这种情况下
statusToColor[status]
根据编译器,没有索引签名。
答案 0 :(得分:2)
您的代码有拼写错误。这适用于我Version 2.5.0-dev.20170629
:
enum Status {
NEW = "NEW",
INPROCESSING = "IN PROCESSING",
DONE = "DONE"
};
const statusToColor: { [key in Status ]: string } = {
"NEW": "blue",
"IN PROCESSING": "yellow",
"DONE": "green"
}
const color: string = statusToColor[Status.NEW];
检查statusToColor
行。要定义类型,您必须使用冒号:
,而不是=
。