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

Я относительно новичок в использовании 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, тоже не повезло.

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

1 Ответ

0 голосов
/ 08 декабря 2018

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

При этом вы пытались добавитьих в jest config globals объект?

https://jestjs.io/docs/en/configuration#globals-object

...