Я использую Typescript с Nodejs, Windows 7 Ultimate x64.Компилятор tsc.
Я изменяю существующую кодовую базу, в которой много файлов, совместно использующих пространство имен.Итак, в верхней части каждого файла есть объявление вроде:
namespace program {
...
}
Я пытаюсь заставить библиотеку JSZip работать в этой существующей кодовой базе, но я столкнулся с какой-то странностью, которая, я думаю, должнасделать с этим пространством имен.
Прежде чем начать, я хочу описать, как я настраивал библиотеку.Сначала я вызвал npm, например, для установки:
npm install --save jszip
npm install --save @types/jszip
Затем я настроил свой tsconfig.json так:
var map = {
'jszip': 'node_modules/jszip/dist/jszip.min.js'
};
Я не уверен, что шаг имеет значение, но он можетПозвольте вызвать импорт "jszip" ниже.
Затем я попробовал несколько команд импорта в коде, но столкнулся с ошибками.Сначала я попробовал:
import * as JSZip from 'jszip';
namespace program {
...
}
Но это вызывает большое количество ошибок в этом файле.Я получаю предупреждение «Пространство имен объявлено, но никогда не используется» для этого большого пространства имен, по крайней мере, в файле, в котором выполняется вызов импорта. Каждая ссылка на внешний файл в этом пространстве имен также не работает, и для тех, кто получает «Не могу»найти имя "..." "ошибка.Таким образом, вызов импорта таким образом кажется несовместимым с использованием пространства имен.
Итак, я попытался:
namespace program {
import * as JSZip from 'jszip';
...
}
Итак, в этом случае я по крайней мере не получаю файл-широкие ошибки, но эта строка все еще создает ошибки.Я получаю два сообщения: «Объявления импорта в пространстве имен не могут ссылаться на модуль».и «Не удается найти модуль« jszip »» (в частности, я не получаю последнюю ошибку при использовании предыдущего метода.)
Так что это заставляет меня думать, что что-то не так в моем подходе или настройке, но даже если яЯ застрял в относительно простой ситуации. Я не смог найти ресурс, который помог бы понять точную проблему.Конечно, я нашел некоторые ресурсы, которые, по крайней мере, собрал воедино ограниченное понимание, ссылки здесь:
types / jszip: https://www.npmjs.com/package/@types/jszip
jszip: https://www.npmjs.com/package/jszip
Это близкий пример, но не идентичный моему случаю.Я не думаю, что предложенные решения будут работать в моей ситуации, но я могу ошибаться: Как использовать пространства имен с импортом в TypeScript
Вот где я получил подсказку для "синтаксис import * ... "и добавление свойства" map "в tsconfig: Импорт JSZip в проекте Angular 2