Я пытаюсь перевести некоторый код, который был неправильно распределен по пространствам имен, в его собственное пространство имен без потери текущей функциональности (во время перехода).
Оригинальный код:
// (org)
module General.Admin.Dialogs {
export class LoginDialog {
// details
}
}
После окончательного перехода:
// (new)
namespace Admin {
export module Dialogs{
export class Login {
}
}
}
Однако мне нужно, чтобы некоторые текущие функциональные возможности работали с помощью алиасинга объектов в одном пространстве имен / модуле, однако компилятор (TypeScript 2.3) недоволен из-за коллизии имен (предполагается, что из-за Я не указал корневое пространство имен, оно использует текущее корневое пространство имен:
namespace Admin {
export module Dialogs{
export class Login {
}
}
}
module General.Admin.Dialogs {
export var LoginDialog = Admin.Dialogs.Login;
}
Admin.Dialogs.Login
предполагается, что компилятор находится в General
(старом) модуле / пространстве имен, а не в Admin.Dialogs
(новом), объявленном выше. Есть ли какая-то магия, которую я мог бы использовать, чтобы заставить это работать?