Я пытаюсь преобразовать существующий проект в использование Typescript, и у меня возникают проблемы с настройкой тестирования.
У меня был установочный файл для моих тестов, который устанавливает jsdom, чтобы весь мой код взаимодействия с DOM работал во время моих тестов. Используя Typescript (ts- node с моккой), я всегда получаю такие ошибки:
Property 'window' does not exist on type 'Global'.
Чтобы предотвратить это, я попробовал исправление интерфейса NodeJS.Global следующим образом:
declare namespace NodeJS{
interface Global {
document: Document;
window: Window;
navigator: Navigator;
}
}
Но это ничего не изменило.
Как включить эти свойства браузера в глобальной переменной NodeJS?
Дополнительно:
Это мой мокко setup.ts
:
import { jsdom, changeURL } from 'jsdom';
const exposedProperties = ['window', 'navigator', 'document'];
global.document = jsdom('');
global.window = global.document.defaultView;
Object.keys(global.document.defaultView).forEach((property) => {
if (typeof global[property] === 'undefined') {
exposedProperties.push(property);
global[property] = global.document.defaultView[property];
}
});
global.navigator = {
userAgent: 'node.js',
};
changeURL(global.window, 'http://example.com/');