我试图解决 typescript 挑战并遇到了这个问题元素隐式具有“任何”类型,因为索引表达式不是“数字”类型。
在这一行 Resistors[val ]
我不确定我在这里做错了什么。如果有人可以指导我到这里,那将非常有帮助。提前致谢!
enum Resistors {
Black = 0,
Brown = 1,
Red = 2,
Orange = 3,
Yellow = 4,
Green = 5,
Blue = 6,
Violet = 7,
Grey = 8,
White = 9
}
export function decodedValue(labels : string[]) {
let valuesArr: string[] = labels.map((value: string) => {
const val: string = value.charAt(0).toUpperCase() + value.slice(1);
return Resistors[val];
});
return Number(valuesArr.join(''));
}
console.log(decodedValue(['brown', 'black']));
最佳答案
首先,您的 Enum 应如下所示 ( source ):
enum Resistors {
Black,
Brown,
Red,
Orange,
Yellow,
Green,
Blue,
Violet,
Grey,
White,
}
其次,这里是 source关于如何访问枚举的属性。
然后,像这样的东西会起作用:
export function decodedValue(labels: string[]) {
let valuesArr: number[] = labels.map((value: string) => {
const val: string = value.charAt(0).toUpperCase() + value.slice(1);
return Resistors[val as keyof typeof Resistors];
});
return Number(valuesArr.join(""));
}
关于Typescript - 从枚举中访问值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72955807/