Как импортировать отладку в проект TypeScript, на котором вы будете использовать накопительный пакет?

У меня есть проект Angular 2 и я использую отладку без проблем. Я сейчас пытаюсь использовать накопительный пакет, и я получаю сообщение об ошибке:

Cannot call a namespace ('debugModule')

Это относится к тому, как я импортирую отладку:

import * as debugModule from 'debug';

Я видел, что решение этой проблемы заключается в импорте без использования * as someName синтаксис, как это:

import debug from 'debug';

или, может быть:

import { Debug } from 'debug';

... но ни одна из этих работ (has no default export а также has no exported member 'Debug'). Я сделал все возможное, чтобы посмотреть на источник обоих debug а также @types/debug чтобы увидеть, что я должен импортировать, но все, что я могу видеть, это от @types/debug - имеются IDebug а также IDebugger интерфейсы, которые не то, что я ищу.

Как я должен импортировать debug такой, что rollup будет хорошо с этим?

Похоже, я могу заставить его работать, называя это так:

debug = debugModule.call(this, 'module:component');

Хотя я не уверен, какие последствия это может иметь вперед...

2 ответа

Вы можете импортировать его следующим образом

import * as debugModule from 'debug';
const debug = debugModule()

Так что я не знаю почему, но если вы установили @types/debug затем import debug from 'debug' не будет работать, но если вы просто удалите @types/debug тогда вы можете импортировать его. Это не решает всех проблем, с которыми я сталкиваюсь debug при использовании накопительного пакета, но он останавливает Cannot call namespace проблема, и вы можете позвонить debug обычно.

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