首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Object.keys迭代导致Typescript错误“元素隐式具有'any‘类型,因为索引表达式不是’number‘类型”

Object.keys迭代导致Typescript错误“元素隐式具有'any‘类型,因为索引表达式不是’number‘类型”
EN

Stack Overflow用户
提问于 2020-12-20 18:06:03
回答 1查看 581关注 0票数 1

我正在尝试显示返回对象的API调用的结果。为了执行.map,我使用了Object.keys,这样它就可以显示结果。

我正在学习打字的新手,并尝试在一个个人项目中练习,但我被这个问题难住了。

我正在进行一个API调用,然后返回一个对象。为了打印值,我使用Object.keys来映射这些值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rates: Object
EUR: 0.8157272208
AUD: 1.3138918346
BRL: 5.1119993474
GBP: 0.7409087201
base: "USD"
date: "2020-12-18"

这是我的codesandbox (如果我切换到.ts文件,整个代码就会爆炸) https://codesandbox.io/s/challenge-7-fetch-a-list-final-forked-7wtwu?file=/src/index.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TypeScript error in /Users/username/gitrepos/crypto-convert/src/App.tsx(60,39):
Element implicitly has an 'any' type because index expression is not of type 'number'.  TS7015

    58 |               Object.keys(cryptos).map((crypto, index) => (
    59 |                 <li key={index}>
  > 60 |                   {crypto} : {cryptos[crypto]}
       |                                        ^
    61 |                 </li>

网上有一些时髦的解决方案和绕过错误的方法,但我不想做任何老生常谈的事情,因为重点是了解更多关于TS的知识。有人能帮我找出我哪里做错了吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-20 18:21:21

Object.keys的类型错误,返回的是string[]而不是参数的键。因此,不能保证cryptocryptos的关键字。避免这种情况的一种方法是将Object.keys

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(Object.keys(cryptos) as keyof typeof cryptos).map(...)

或者,只使用Object.entries来遍历键和值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Object.entries(cryptos).map(([key, value], index) => (
    <li key={index}>
        {key}: {value}
    </li>
)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65383113

复制
相关文章
你知道这样的mock吗
mock数据用过的人一定不陌生,他的好处也是层出不穷,比如下面就是一段对mockjs很好的描述:
饼干_
2022/09/19
4890
Deno: 你并不总是需要NodeJS
众所周知,Node 包管理很复杂,包之间又有可能互相依赖, 互相引用。且存在多个版本安装混乱的问题。
腾讯专有云
2022/06/24
7620
Deno: 你并不总是需要NodeJS
Deno: 你并不总是需要NodeJS
Node包管理很复杂, 包之间又有可能互相依赖, 互相引用. 且存在多个版本安装混乱的问题.
极度狂热
2022/06/08
8750
Deno: 你并不总是需要NodeJS
你需要 GraphQL 吗?
第一次了解到 GraphQL 是查阅 Github 文档时,偶然看到 v4 版本文档只要一个链接就可以完成所有获取数据和更新数据请求,当时看到觉得特别惊艳,能跳出 REST 请求模式,构建出全新的一套环境来实现网络请求,GraphQL 的开发者确实很有想法。
Omniqia
2019/07/03
2.2K0
你需要 GraphQL 吗?
你真的需要消息队列吗
企鹅号小编
2018/01/05
1.4K0
你真的需要消息队列吗
你需要每天写代码吗?
你需要每天写代码吗? 就像运动员每天锻炼一样,每天练习写代码可以成就更优秀的你。 最近我看过的博客,基本上每篇都有提到,“你需要每天写代码”。什么主题不重要,关键是要养成每天写代码的好习惯。写得越多,
用户1289394
2018/02/27
1.1K0
你需要每天写代码吗?
你知道为什么电脑总是被黑客入侵吗?
我不知道,因为我的电脑还没被入侵。但为了以后我知道自己电脑被谁入侵了,所以接下来我还是带大家去了解一下吧
网e渗透安全部
2019/08/09
2.1K0
你知道为什么电脑总是被黑客入侵吗?
python爬虫总是爬不到数据,你需要解决反爬虫了
爬虫最讨厌的就是反爬虫,但是如果没有反爬虫的存在的,那么大家都可以随随便便就进行网络爬虫,那么服务器又怎么支撑得起来呢?那么又怎么彰显我们的能力呢?
全栈程序员站长
2022/07/08
1.5K0
为什么加班的总是你?
“为什么加班的总是你?”其中一个原因就是原始表格不规范。 不规范表格的典型特点 这个原始表格可能是你自己做出来的,可能是别人给你的,也可能是从软件里面导出来的。如果是不规范的表格,而你需要做出相应的数据统计或者数据计算,那你肯定是要加班的,花费的时间也会比你平常的工作量要多。 下图是一张hope 公司销售的明细账。 由销售人员或销售部门的相关人员来进行的统计账。这个表格看上去是不是还不错?而且眼熟的,大多数人作出的表格不就是这样吗? 这边是日期,商品名称,然后是商品在各个型号、种类下的销售的数量,销售的
博文视点Broadview
2022/04/01
6340
为什么加班的总是你?
你真的需要一个CSS实用工具集吗?
让我们先来定义:一个CSS工具集库是一个拥有许多可用于做许多一次性小事的样式表。如调整margin和padding的类。设置颜色的类。设置具体样式属性的类。设置尺寸的类。工具集库会用不同的方式来实现这些东西,但更像是分享这种理念。这种方式在本质上更像是把样式放在html层次而非css层次上。样式表成为你不用真正的接触一个开发依赖。
疯狂的技术宅
2019/03/28
8330
你真的需要一个CSS实用工具集吗?
你的企业真的需要“数据中台”吗?
数据中台包括平台、工具、数据、组织、流程、规范等一切与企业数据资产如何用起来所相关的。
数澜科技
2019/09/29
1.8K0
你的企业真的需要“数据中台”吗?
你真的需要Apple TV吗?不如自制一个Android TV!
去年我写了一篇《树莓派家用指北》,介绍了树莓派是如何作为家庭服务器改善我的生活的,指路链接 👉 树莓派家用指北 今天我们的主角依旧是我的那个树莓派,只是以另一种形式在我的家里发光发热——电视盒子。 看到这可能有人会好奇,这个树莓派用作电视盒子后,原先的家庭服务器怎么办?事实上我之所以把这个树莓派做成电视盒子,第一个原因是我搬家了,需要重新升级规划下家里的软件系统,第二是我用 NAS 替代了原先的树莓派用作家庭服务器(有机会的话以后讲一下)。 所以为了不让这个“理财产品”就这么吃灰下去,我一直积极探索可能的
出其东门
2022/12/05
3.5K1
你真的需要Apple TV吗?不如自制一个Android TV!
微博评论转发总是抓不全?你可能需要知道这些。
距离上一次配置教程更新:万字长文,2022 最全微博超级爬虫指南 已经过去了快 3 个月,天数更易,神器有变,期间后台有不少读者留言各种问题和错误,一部分是上次教程更新的遗漏,也有是微博接口变化,抽空梳理了下。问题主要集中在以下几个方面:
月小水长
2022/09/02
1.1K0
防御DDoS总是找不到诀窍?你真正了解了DDoS吗?
在信息技术的发展为人们带来了诸多便利的同时,也带来了威胁,防御DDoS攻击的重要性已经慢慢体现出来。DDoS是众多网络攻击里面最具破坏力的攻击方式,经过这些年的不断发展,它已经成为不同组织和个人的攻击方式首选,用于网络中的勒索、报复,甚至网络战争。
blublu7080
2021/01/19
5260
防御DDoS总是找不到诀窍?你真正了解了DDoS吗?
为啥有些经理,总是强行刷存在感?(你遇到过吗?)
新尝试,视频号聊技术,欢迎双击爱心 新尝试,60s分享一个正能量。 “架构师之路”视频号,学技术,学管理,闯职场 如果大家喜欢,我尽量坚持下去。 推荐阅读: 《架构师之路,21年干货精选》
架构师之路
2022/07/20
1700
为啥有些经理,总是强行刷存在感?(你遇到过吗?)
Kali Linux 是什么,你需要它吗?
如果你听到一个 13 岁的黑客吹嘘他是多么的牛逼,是有可能的,因为有Kali Linux的存在。
Xcnte
2021/12/14
6.5K1
Kali Linux 是什么,你需要它吗?
你真的需要自动化测试吗?
前几天在技术交流群,有同学抛了一个关于自动化测试的思维导图,问大家有什么好的建议。
老_张
2022/09/02
2650
你真的需要自动化测试吗?
你不需要 jQuery,但你需要一个 DOM 库
写这篇文章的目的,一方面是介绍一下自己编写的模块化 DOM 库 domq.js,另一方面是希望大家对 jQuery 有一个正确的认识,即使 jQuery 已经逐渐退出历史舞台,但是它的 API 将会以另外一种形式存在下去。
叙帝利
2019/05/25
1.1K0
你不需要 jQuery,但你需要一个 DOM 库
为什么你的原型总是改?
每个需求产生到以产品的形态呈现大致要走上图的几个步骤,需求的获取、需求的分析前面的文章已经写过怎么做了,这篇主要分享业务流程怎么做,有经验的小伙伴应该都组织或参加过需求评审的会议,与会的人员就是这个项目的相关人员(如 领导、研发、测试、设计等),身为产品我们要提供业务流程图和低保真原型图,并对其进行解释说明并给与会的成员答疑。
靠谱先生
2018/09/10
6560
为什么你的原型总是改?
如果,你需要一个理由……
最近有不少朋友来问,能不能简单直接的告诉他们,金牛会员究竟能带来什么好处?今天我们不讲其他,直接来了解一下,腾讯金牛会员究竟能给企业带来什么价值。 腾讯金牛企业会员金牛会、数字化顾问、数字化资质认证、云产品、代金券plus包五大权益,所覆盖的也是中小企业在进行数字化建设中必不可缺重要方面。 01 首先,云产品权益中包含了近百款企业上云、数字化转型所需的云产品、云服务,另外代金券plus包满足了企业更多的采购需求,为企业实现降本助力; 降本:拒绝简单粗暴的削减成本,帮助企业提高企业管理水平、形成市场竞争优势
腾讯云DNSPod团队
2021/11/26
5440

相似问题

你总是需要一个原型单元吗?

10

如果你有分类任务,你总是需要一个热编码吗?

11

你能在foq中设置递归mock吗?

10

你能用mock_open模拟串行连接吗?

11

Android片段并创建它们的新实例。你总是需要一个容器吗?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文