details.features.has не является функцией

Я использую 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 ERROR TypeError: details.features.has не является функцией

1 ответ

Существует вероятность того, что объект, который вы получите в своей подписке (далее), не пройдет как файл . Затем вы говорите машинописному тексту, чтобы он рассмотрел ваш featuresкак , и делая это, вы открываете свой код для таких исключений во время выполнения.

Если нет возможности получить фактический объект в вашей подписке, вам придется создать набор, содержащий ваши данные, или настроить свою логику так, чтобы она не зависела от Setметод.

Другие вопросы по тегам