Я относительно новичок в использовании Typescript и Jest, и я столкнулся с проблемой, когда у меня есть целая куча объявлений окружения в файлах наборов (index.d.ts) в @types/screeps
.Они выглядят так:
declare const OK: 0;
declare const ERR_NOT_OWNER: -1;
//etc.
Всякий раз, когда я использую эти константы в тесте, я получаю ReferenceError: OK is not defined
в Jest.Если я объявлю значение в тесте, местоположение ошибки переместится в тестируемый файл.
Я немного погуглил и обнаружил эту конкретную ошибку в репозитории ts-jest: https://github.com/kulshekhar/ts-jest/issues/112
Тем не менее, мне трудно после обсуждения, потому что я почти никогда не использовал Typescript и действительно не понимаю, как я могу решить эту проблему самостоятельно.Я хочу иметь возможность объявлять эти значения в области видимости и использовать их в своих тестах.Всякий раз, когда код компилируется с использованием накопительного пакета, тип будет выбран (поскольку это глобально доступное значение в Screeps во время выполнения и скомпилированный вывод в порядке).Я не против подправить tsconfig.json или скопировать файлы / взломать решение вместе.
Я попытался скопировать index.d.ts из папки @types в мою тестовую папку, попытался выполнить импорт в нее, попытался изменить declare const
на export const
(но тогда мне нужно импортировать модуль, и все это в определенном пространстве имен).Пробовал делать declare global
, тоже не повезло.
Кажется, это поведение является преднамеренным по причинам, выходящим за рамки моего понимания.Я действительно смущен, есть ли способ для меня, чтобы решить это?Или мне просто не повезло?