В настоящее время я пытаюсь создать небольшую библиотеку пакетов npm с некоторыми утилитами для тестирования Jasmine. Код находится в моем GitHub https://github.com/DrMueller/MLAH.Testing и содержит в настоящее время только 2 функции и тип.
К сожалению, я не на 100% заинтересован в том, как именно работает магия импорта файлов d.ts:
Согласно официальной документации:
По умолчанию все видимые пакеты «@types» включены в ваш
сборник. Пакеты в node_modules / @ types любой вложенной папки
считаются видимыми; в частности, это означает, что пакеты в
./node_modules/@types/
Therefore, creating a type like
export type SpyOf<T> = {
[Method in keyof T]: jasmine.Spy;
};
Я бы предположил, что когда я удаляю typeRoots, жасминовые наборы найдены, но я все равно получаю
ошибка TS2503: не удается найти пространство имен 'jasmine'.
Кроме того, принимая во внимание другие свойства, такие как include или типы, в соответствии с документацией они всегда разграничивают найденные типы, поэтому, не указывая их, следует учитывать все типы в node_modules / @ types.
Единственное работающее решение - это добавить его вручную в каждый файл через
/// <reference path="../../node_modules/@types/jasmine/index.d.ts" />
Это работает для компиляции, но поскольку созданный пакет npm не находится в той же относительной папке, что и код, он выдает там исключение.
Я что-то упустил или это жасмин какой-то особый вид модуля?