Относительный импорт @Types в Angular библиотеки - PullRequest
0 голосов
/ 31 августа 2018

В настоящее время я пытаюсь создать небольшую библиотеку пакетов 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 не находится в той же относительной папке, что и код, он выдает там исключение.

Я что-то упустил или это жасмин какой-то особый вид модуля?

1 Ответ

0 голосов
/ 02 сентября 2018

Я боялся, что для решения этого потребуются специфические для Angular знания, которых у меня нет, но нет: я вижу, что angular.json ссылается на src/tsconfig.app.json, и я могу воспроизвести проблему, запустив tsc -p src/tsconfig.app.json.

Удалить строку "types": [] из src/tsconfig.app.json. Эта строка отключает автоматическую загрузку всех видимых пакетов @types.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...