我试图解决一个typescript挑战,在第Resistors[val]行遇到了这个问题Element implicitly has an 'any' type because index expression is not of type 'number'..我不确定我做错了什么.如果有人能在这里指点我,那真的很有帮助.提前感谢!

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']));

推荐答案

首先,您的枚举应该如下(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相关问答推荐

如何根据模板类型实现不同的模板函数行为?

为什么T[数字]不也返回UNDEFINED?

对未到达受保护路由的路由环境做出react

FatalError:Error TS6046:';--模块分辨率';选项的参数必须是:'; node ';,'; node 16';,'; node

为什么我的动画状态在组件实例之间共享?

如何从MAT-FORM-FIELD-MAT-SELECT中移除焦点?

S,为什么我的T扩展未定义的条件在属性的上下文中不起作用?

如何键入派生类的实例方法,以便它调用另一个实例方法?

如果判断空值,则基本类型Gaurd不起作用

如何在Nextjs路由处理程序中指定响应正文的类型

顶点堆叠的图表条形图未在正确的x轴上显示

如何在Angular /字体中访问API响应的子元素?

组件使用forwardRef类型脚本时传递props

使用NextJS中间件重定向,特定页面除外

React-跨组件共享功能的最佳实践

在ts中获取级联子K类型?

在Typescript 无法正常工作的 Three.js 中更新动画中的 GLSL 统一变量

为什么我的 Typescript 函数中缺少 void 隐式返回类型?

在 TypeScript 中实现类型级别深度优先搜索

如何创建元组的并集?