Я работаю над приложением, которое использует TS и OpenLayers.
Я пытаюсь построить дерево зависимостей, чтобы во все приложения я помещал операторы импорта и экспорта в мои файлы * .ts.
У меня есть файл 'openlayers.ts', который расширил базовую библиотеку OpenLayers.
Например, расширено пространство имен взаимодействия openlayers.
Мой openlayers.ts выглядит так:
declare namespace ol {
namespace interaction {
interface someEvent {
...
}
class myExtendedClass extends ol.interaction.Pointer {
...
}
}
}
Я знаю, что ol namespace
из базовой библиотеки OpenLayers и мой расширенный ol namespace
будут объединены. Документация по TypeScript четко описывает, как объединять пространства имен.
Но моя проблема возникла, когда мне пришлось экспортировать мое расширенное пространство имен, потому что оно используется в моем приложении, а до экспорта - приложение не увидело мое расширенное пространство имен.
Мой openlayers.ts теперь выглядит так:
export declare namespace ol {
...
}
Как вы можете видеть в моем ol namespace
, у меня есть myExtendedClass
, который нужно расширить ol.iteraction.Pointer
(от базовых OpenLayers).
Но теперь, когда я экспортировал свое пространство имен, приложение не знает, что это такое ol.interaction.Pointer
. Итак, я пришел к выводу, что мне нужно импортировать базовые OpenLayers в мой файл, и теперь мое приложение будет определять, что такое ol.interaction.Pointer
.
Мой openlayers.ts теперь выглядит так:
import ol = require('openlayers');
export declare namespace ol {
...
}
но теперь у меня есть ошибки:
- (TS) отдельные объявления в объединенной декларации 'ol' должны быть все экспортированы или все локальные.
- В свойстве
ol.interaction.Pointer
- (TS) «Указатель» не существует для типа «взаимодействие типа».
- (TS) Объявление импорта конфликтует с локальным объявлением 'ol'
Я действительно не знаю, что мне делать.
Я только начал с TS, и эти ошибки не говорят мне слишком много.
Любые предложения?