0

我正在使用 angular 13 和 es2021(也尝试使用 es6 添加 2018)

tsconfig.lib.json

...
"lib": ["dom", "es2021"]
...

我有以下对象。

export interface UserDetails {
  ...
  features?: Set<UserFeature>;
  ...
}

我正在尝试检查以下一些值:

this.sessionQuery.details$.subscribe((details: UserDetails) => {
      const enableFF = details.features && (details.features as Set<UserFeature>).has({ feature: 'enableFF ', enabled: true });
 ...
    });

IDE上没有问题,但我在浏览器上有以下问题:

core.mjs:6495 错误类型错误:details.features.has 不是函数

4

1 回答 1

0

您在订阅中收到的对象(下一个)有可能不会features作为Set. 然后,您告诉 typescript 将您的features视为Set,并且这样做,您为此类运行时异常打开了代码。

如果无法Set在订阅中接收实际对象,则必须实例化包含数据的集合或调整逻辑以不依赖于Set方法。

于 2022-02-22T22:14:58.040 回答