ts-jest - объявлять const из набора (.d.ts) значения не определены при запуске jest

Я относительно новичок в использовании Typescript и Jest, и я столкнулся с проблемой, когда у меня есть целая куча окружающих объявлений в файлах наборов (index.d.ts) в @types/screeps, Это выглядит так:

declare const OK: 0;
declare const ERR_NOT_OWNER: -1;
//etc.

Всякий раз, когда я использую эти константы в тесте, я получаю ReferenceError: OK is not defined в шутку. Если я объявлю значение в тесте, местоположение ошибки будет перемещено в тестируемый файл.

Я немного погуглил и нашел эту конкретную ошибку в репозитории ts-jest: https://github.com/kulshekhar/ts-jest/issues/112

Тем не менее, мне трудно после обсуждения, потому что я почти никогда не использовал Typescript и действительно не понимаю, как я могу решить эту проблему самостоятельно. Я хочу иметь возможность объявлять эти значения в области видимости и использовать их в своих тестах. Всякий раз, когда код компилируется с использованием накопительного пакета, тип будет выбран (поскольку это глобально доступное значение в Screeps во время выполнения и скомпилированный вывод в порядке). Я не против подправить tsconfig.json или скопировать файлы / взломать решение вместе.

Я попытался скопировать index.d.ts из папки @types в мою тестовую папку, попытался выполнить импорт, попытался изменить declare const в export const (но тогда мне нужно импортировать модуль, и все это в определенном пространстве имен). Пытался делать declare globalтоже не повезло.

Кажется, это поведение является преднамеренным по причинам, выходящим за рамки моего понимания. Я действительно смущен, есть ли способ для меня, чтобы решить это? Или мне просто не повезло?

1 ответ

Решение

Я могу ошибаться, но такое чувство, что объявление этих значений константами в d.ts, возможно, не правильный путь, но я могу ошибаться.

Это, как говорится, вы пытались добавить их в конфигурации Jest globals объект?

https://jestjs.io/docs/en/configuration

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