【发布时间】:2021-06-11 12:36:07
【问题描述】:
我正在尝试使用键映射对象,以便可以轻松地返回它们。 我可以得到一个字符串或正则表达式,这是问题所在,将密钥设置为字符串很容易。
这是我在路由为字符串时为对象设置键的方式,但问题是我无法将正则表达式设置为键,它需要是数字或字符串。
private nodesByRoute: { [key: string]: NavbarItemNode } = {};
this.nodesByRoute[node.route] = node;
所以我想解决方案看起来像这样:
private nodesByRoute: { [key: string | RegExp]: NavbarItemNode } = {};
我的实现是我得到一个路由字符串,比方说 /category/items ,如果它匹配它将返回这样的节点:
return this.nodesByRoute[routerLink];
但我也需要它来使用正则表达式,因为我可以得到这样的东西:/items/60。
所以我得到了items/ 和项目的编号,这就是我需要正则表达式作为键的原因。
此外,我认为在尝试将键与我的路线匹配时,我还需要逻辑。 路线将始终是一个字符串,但键可能是正则表达式,所以我认为这不会起作用:
return this.nodesByRoute[routerLink];
【问题讨论】:
-
我认为这是不可能的,因为 JavaScript 只允许
string: stackoverflow.com/questions/3608246/… 类型的键
标签: angular regex typescript mapping