首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Ts中string、number和any等类型 不能当做索引用,怎么处理?

Ts中string、number和any等类型 不能当做索引用,怎么处理?

原创
作者头像
肥晨
发布2023-04-23 10:25:22
发布2023-04-23 10:25:22
2K00
代码可运行
举报
文章被收录于专栏:农民工前端农民工前端
运行总次数:0
代码可运行

导文

Ts中string、number和any等类型 不能当做索引用,怎么处理? 报错:元素隐式具有“any”类型,因为类型为“number”的表达式不能用于索引类型“[***”。在类型“[ ***”上找不到具有类型为“number"的参数的索引签名。 ts(7053) keyof 的使用

问题

Ts中string、number和any等类型 不能当做索引用,怎么处理?

代码语言:javascript
代码运行次数:0
运行
复制
const handerField = (item: number) => {
   caselist= data.showList[item]//报错
}

元素隐式地拥有 any 类型,因为 number类型不能被用于索引 {} 类型。

解决方法

方法1

代码语言:javascript
代码运行次数:0
运行
复制
const handerField = (item: number) => {
   caselist= (data.showList as any)[item];
}

方法2

代码语言:javascript
代码运行次数:0
运行
复制
const handerField = (item: number) => {
   caselist= data.showList [item as keyof typeof data.showList ]
}

方法3

代码语言:javascript
代码运行次数:0
运行
复制
const handerField =  function <T extends object, K extends keyof T>(obj: T, key: K) {
  return obj[key];
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导文
  • 问题
  • 解决方法
    • 方法1
    • 方法2
    • 方法3
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档