相关文章推荐
风度翩翩的创口贴  ·  上海包车服务推荐?·  9 月前    · 
眉毛粗的油条  ·  jQuery键盘事件详解-CSDN博客·  9 月前    · 
精明的山寨机  ·  中国当代艺术市场转向:从名气为王走向作品唯实 ...·  11 月前    · 
冲动的西瓜  ·  東京往大阪新幹線車票&時刻表|Klook·  11 月前    · 
机灵的乌冬面  ·  少女时代泰妍将出演中国版《拜托了冰箱》 | ...·  1 年前    · 
Code  ›  类型-元素隐式具有'any‘类型,因为类型'any’不能用于索引类型‘type of EnumUrl’..ts(7053)开发者社区
https://cloud.tencent.com/developer/ask/sof/107411840/answer/132401641
不敢表白的铁链
2 年前
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
提问

问 类型-元素隐式具有'any‘类型,因为类型'any’不能用于索引类型‘type of EnumUrl’..ts(7053)

Stack Overflow用户
提问于 2022-11-01 11:43:55
EN

在非.tsx页面中,我们过去常常这样枚举:

代码语言: javascript
复制
const enumUrl= {
  xxx: [BRAND],
  yyy: [BRAND],
};

在.tsx页面中,我想使用 enum 。所以我创造了:

代码语言: javascript
复制
  enum EnumUrl {
    xxx = "https://example.com/",
    yyy = "https://example.net"
  }

在联合来文中:

代码语言: javascript
复制
  Visit <a href={EnumUrl[BRAND}} target="_blank" rel="noopener noreferrer">
    {EnumUrl[BRAND]}
  </a>

然而,它说:

代码语言: javascript
复制
Element implicitly has an 'any' type because expression of type 'any' can't be used to index type 'typeof EnumUrl'.ts(7053)

然后,我阅读了这个可能的解决方案: https://stackoverflow.com/a/41970976/1580094 ,并执行了以下操作:

代码语言: javascript
复制
  enum EnumUrl {
    xxx = "https://example.com/",
    yyy = "https://example.net"
var url : EnumUrl = EnumUrl[BRAND as keyof typeof EnumUrl];
 Visit <a href={url[BRAND}} target="_blank" rel="noopener noreferrer">
    {url[BRAND]}
  </a>

控制台日志: console.log(url);// https://example.com/ console.log(urlBRAND);//未定义的console.log(品牌);// xxx

但是这样做, <a 元素就完全从DOM中消失了。没有错误。

我做错了什么,我该如何解决呢?

2 183 0 票数 1
EN
reactjs
typescript

Stack Overflow用户

回答已采纳

发布于 2022-11-01 12:40:25

安恩博士似乎并不是你真正想要的。

哦,我明白了,乍一看,这就像是一个枚举:你有一组URL。这组URL可能实际上是一个枚举,类似于:

代码语言: javascript
复制
enum URLs {
  A = "www.foo.com",
  B = "www.bar.com"
}

问题来自于您如何使用这些值。因为您像使用映射一样使用"enum“:通过动态提供的键查找其中的值。Javascript/Typescript已经有了一个用于此目的的构造(实际上是两个),所以用enum来使用它

代码语言: javascript
复制
enum Brands {
    'xxx',
    'yyy'
// Note that www.foo.com and www.bar.com could be in
// *another* enum, and you could use the URL_MAP to
// connect the two enums. But either way you'll want the
// object for dynamic lookups
const URL_MAP = {
    [Brands.xxx]: "www.foo.com",
 
推荐文章
风度翩翩的创口贴  ·  上海包车服务推荐?
9 月前
眉毛粗的油条  ·  jQuery键盘事件详解-CSDN博客
9 月前
精明的山寨机  ·  中国当代艺术市场转向:从名气为王走向作品唯实 - 新闻资讯 - 吾艺传媒网
11 月前
冲动的西瓜  ·  東京往大阪新幹線車票&時刻表|Klook
11 月前
机灵的乌冬面  ·  少女时代泰妍将出演中国版《拜托了冰箱》 | 亚洲日报
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号