Ошибка типа: правая часть instanceof не вызывается - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу проверить свою функцию, которая проверяет, является ли моя переменная экземпляром типа, который я использую, и что-то делает.Я делаю проверку следующим образом, и она работает, как и ожидалось.

myCheckingFunction = () => {
 if (target instanceof H.map.Marker) {
 ...
 }
}

Но когда я хочу проверить этот код, вызвав функцию в моем тесте (я тестирую с помощью jest), то он выдает typeError.

Почему это происходит и как я могу передать это?

РЕДАКТИРОВАТЬ: После некоторого дальнейшего исследования я понял, что это не сработает, просто вызвав функцию впроверить и предположить, что все должно работать нормально.Это связано с типом, который я проверяю в instanceof 'H.map.Marker' в myCheckingFunction.

Мой проект настройки на данный момент не самый лучший, но я должен с этим справиться.Вот что у меня есть:

class MockEventTarget {}
(global as any).H = {
  map: {
    Marker: MockEventTarget,
  },
};

// this is how I call my test for myCheckingFunction
testMyCheckingFunction({target: new MockEventTarget()});

Из-за того, что я не могу просто импортировать H.map.Marker в моем тесте, я создаю фиктивный класс.Затем создаю глобальную переменную, в которой я говорю своей тестовой настройке, что предполагается, что H.map.Marker является классом.

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

1 Ответ

0 голосов
/ 29 апреля 2019

Попробуйте код ниже, это должно работать:

myCheckingFunction = (e) => {
 if (e.target instanceof H.map.Marker) {
 ...
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...