Как я могу иметь глобальный расширяемый объект, содержащий экземпляры с информацией о типах в машинописи? - PullRequest
1 голос
/ 01 ноября 2019

Я портирую приложение JavaScript на TypeScript, и приложение использует глобальную переменную контейнера для общих функций и переменных. Эта переменная, назовем ее Engine, находится в глобальной области видимости и содержит такие вещи, как функции assert или log, чтобы избежать необходимости их импорта для каждого отдельного файла.

Кроме того, Engine содержит важныеэкземпляры, как NetworkManager, которые используются отовсюду. Эти экземпляры добавляются к Engine динамически во время инициализации приложения различными классами.

Меня меньше беспокоит проблема с областями видимости наличия глобальной переменной, но больше подхода в целом и того, как изменить этот объектиз разных модулей без полного объявления типа в одном месте.

Каков наилучший метод для TypeScript здесь?

...